使用Caddy一键部署网站+自动SSL小绿锁
                                warning:
                                这篇文章距离上次修改已过463天,其中的内容可能已经有所变动。
                            
                                                Caddy是一个对标Nginx的 Web 容器,采用Golang编写,主打采用更少的配置来完成需求。特点如下:
- 自动申请SSL证书
 - 自动续期证书
 - 极简的配置项
 - 一行配置反代
 
Docker Compose 安装(推荐)
准备工作
在安装之前,需要准备一个配置文件 Caddyfile,内容如下:
# 引入所有配置文件
import /conf/*.caddy安装
Docker Compose文件献上:
version: "3.7"
services:
  caddy:
    image: caddy:latest
    restart: unless-stopped
    networks:
      - persist
      - default
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ../data/caddy/Caddyfile:/etc/caddy/Caddyfile
      - ../data/caddy/site:/srv
      - ../data/caddy/conf:/conf
      - caddy_data:/data
      - caddy_config:/config
volumes:
  caddy_data:
  caddy_config:
networks:
  persist:
    driver: bridge
    attachable: true
  default:
    name: compose_default
    external: true这里注册一个网络以及加入compose网络的主要目的是为了方便的反代其它容器
配置站点
所有的站点都配置/conf目录,所以要在映射的目录下编写配置文件,建议比较复杂的话就一个站点一个配置文件。
每一个配置文件后缀名为:.caddy, 增加配置文件后记得重启或者重新加载配置文件生效
反代同网络中的容器
可以直接使用容器名的前提是容器与caddy处于同一网络domain {
    reverse_proxy container:port
}
# 例如
www.example.com {
    reverse_proxy web_server:80 # 80可以省略
}带路径的反代
domain {
    reverse_proxy path target:port
}
# 例如
www.example.com {
    reverse_proxy /api/* web_sever:80
}想反代指定路径的请求,可以通过handle达到目的,同时还可以 Rewrite 重写请求来满足更定制化的需求:
domain {
    handle path_reg {
        rewrite match_reg target_path
        reverse_proxy target:port
    }
}
# 例如
www.example.com {
    handle /api/v1/* {
        rewrite * /api{path}
        reverse_proxy web_server:80
    }
}更多需求可以查看官方文档
评论已关闭