自动摘要
        
        
        
        正在生成中……
        
                            创建Caddy Docker容器
创建并运行 run.sh
#!/bin/env bash
docker rm -f caddy
# $DOCKER_CONF是你存放caddy相关数据的映射目录
docker run -d --name caddy \
    -p 8888:80 \
    -p 8443:443 \
    -v 你的网站目录:/srv \
    -v $DOCKER_CONF/caddy/caddy_data:/data \
    -v $DOCKER_CONF/caddy/caddy_config:/config \
    caddy \
    caddy file-server --domain 你的域名
注意:caddy的80和443端口必须映射出来,否则无法自动签发SSL证书。
OpenResty设置
如果OpenResty同时Serve其他https服务,或者443端口运行其他服务,根据域名进行转发。
#ssl_preread_servername.conf ,在nginx.conf的http段前面include
stream {
    upstream ssh{
        server 127.0.0.1:22;
    }
    upstream www{
        server 127.0.0.1:4430;
    }
    upstream caddy{
        server 127.0.0.1:8443;
    }
    // ...
}
 map $ssl_preread_server_name $ssl_server {
        你的域名 caddy;
        // ... 
        default www;
}
server {
        listen 443;
        ssl_preread on;
        proxy_pass $ssl_server;
        proxy_connect_timeout 5s;
    }
openresty转发Server 80端口到本地8888端口:
server {
    listen      80;
    server_name  你的域名;                  #修改为自己的域名
    location / {
        add_header  Via "OpenResty";
        proxy_set_header Host 你的域名; #不能省略这一行,不然会被Caddy重定向到 https://localhost
        proxy_pass http://localhost:8888;
    }
}
 proxy_set_header Host 你的域名; 
注意:不能省略这一行,不然会被Caddy重定向到 https://localhost
重启openresty
不要用reload,不然 sni preread 配置有可能不生效,强制重启。
systemctl restart openresty