docker里的nginx反向代理宿主机的方式

运维 qmt 1℃

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服务就可以了。

喜欢 (0)