sg02 服务器的 Nginx 反向代理,通过 SSL 证书目录、虚拟主机配置、站点目录映射达到一个 Nginx Docker 代理服务器中多个服务。
DOCKER_NGINX_VHOST_DIR- Nginx 虚拟主机目录,在nginx.conf里直接加载:include vhost/*.conf,如果有站点自定义公用文件,可以以站点名为目录存放,使用include vhost/站点名/demo.confDOCKER_NGINX_CA_DIR- Nginx SSL 证书目录,在 Nginx 配置文件里可以直接使用ca/domain/xxx引用WWWROOT_DIR- 网站目录,以域名为子目录存放,在 Nginx 配置文件中使用/usr/share/nginx/html/子目录引用,或者使用变量WWWROOT_DIRLOCAL_DIR- 网站数据,映射到/usr/share/data,可以使用变量LOCAL_DIR获取
注意:以上变量是在 sg02 服务器中定义。
inc/favicon.conf- Favicon 图标,需要在server指令使用inc/robots.conf- 蜘蛛配置,需要在server指令使用inc/robots.disallow.conf- 蜘蛛配置,禁止抓取,需要在server指令使用inc/ssl.conf- 公用 SSL 配置,需要在server指令使用inc/no-cache.conf- 关闭浏览器缓存,每次都是 HTTP 200 ,注意:使用的add_header指令,在需要的地方进行includeinc/security.conf- 一些安全、优化相关的公用配置,注意:使用的add_header指令,在需要的地方进行includeinc/sts.conf- STS,注意:使用的add_header指令,在需要的地方进行include
以 ./lua 当前目录映射到 /etc/nginx/lua 目录,在配置里直接使用 lua/xxx.lua 引用。
server {
set_by_lua $WWWROOT_DIR 'return os.getenv("WWWROOT_DIR")';
root $WWWROOT_DIR/xxx;
include inc/favicon.conf;
include inc/ssl.conf;
ssl_certificate ca/shangxian.app/fullchain.cer;
ssl_certificate_key ca/shangxian.app/shangxian.app.key;
location / {
add_header 'x-dns-prefetch-control' 'on';
include inc/no-cache.conf;
include inc/sts.conf;
include inc/站点名/demo.conf;
}
location @webp {
content_by_lua_file "lua/webp.lua";
}
}/bin/sh $DOCKER_NGINX_DIR/reload.sh