docker里的nginx反向代理宿主机的方式。
场景是这样的:
使用docker部署的宝塔面板,因为担心宝塔bug多,导致云主机被人黑进来。(之前用docker安装的php镜像被人放了挖矿病毒,心有余悸)
而宝塔面板里面就已经内置了nginx和对应的conf文件。
默认配置下,docker里的nginx配置文件路径:/www/server/panel/vhost/nginx/*.conf, 这个配置在宝塔面板里面配置。

把你配置好的nginx.conf 文件放到这里面。
因为我的主服务是部署在宿主机,也就是部署docker的主机,而非docker里面。
这里我部署的本地服务请求地址为:http://127.0.0.1:5001
外部 网络访问我配置的域名XXXX.com, 然后进入到我的docker nginx服务,反向代理到我的宿主机服务http://127.0.0.1:5001
对于docker里面的主机而言,宿主机的IP是:172.17.0.1,而不是127.0.0.1,这里是容易出错的地方。
而nginx.conf 文件如下:只供参考
nginx.conf 文件
server {
server_name xxx.xxxx.com;
charset utf-8;
client_max_body_size 50000m;
access_log /www/wwwlogs/access.log;
error_log /www/wwwlogs/error.log;
location / {
proxy_pass http://172.17.0.1:5001/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置完成之后到宝塔面板重启一下nginx服务就可以了。