自动摘要
正在生成中……
创建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