Caddy服务器

Jul. 1, 2020

Caddy 是一个功能强大、企业级、开源 Web 服务器,具有用 Go 编写的自动 HTTPS

配置文件Caddyfile

通用配置

localhost

file_server
reverse_proxy /api/* 127.0.0.1:9005

自用配置

xxxx.xxxx {
    # 指定证书
    tls path/to/cert path/to/key
    # 自动获取证书
    tls {
    	dns cloudflare xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    }
    # 日志
    log {
        output file /var/log/access.log {
            roll_size 10mb
            roll_keep 3
            roll_keep_for 720h
        }
    }

    # 导入配置
    import path/to/notes
    import path/to/blogger
}

docker-compose配置文件

通用配置

version: '3'
services:
  caddy:
    container_name: caddy
    image: caddy
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./config:/config
      - ./data:/data
      - ./log:/var/log
    logging:
      options:
        max-size: "10m"
        max-file: "1"
networks:
  default:
    external: true
    name: host-network

自用配置

version: '3'
services:
  none.one:
    container_name: none.one
    image: xxxxx/caddy
    restart: always
    ports:
      - 0.0.0.0:80:80
      - 0.0.0.0:443:443
    environment:
      - BLOG=https://github.com/xxxx/blogger.git
      - NOTES=https://github.com/xxxx/notes.git
    volumes:
      - ./config:/etc/caddy
      - ./.ssl:/data
      - ./log:/var/log
    logging:
      options:
        max-size: "10m"
        max-file: "1"
networks:
  default:
    external: true
    name: host-network

config目录结构

config
├── Caddyfile
└── snippet
    ├── blogger
    └── notes