nginx反代跳转请求丢失端口的解决办法

nginx反向代理http,是实现加密访问网址的好方法,目前了解常用的反代项目有Nginx Proxy Manager、swag,都有docker版,安装方便。

使用中发现在自定义端口时,nginx反代跳转请求会丢失端口号,如calibre-web在登录时就会丢失端口,导致无法访问。经研究在反代模块中绑定端口即可解决,具体如下:

calibre-web原本反代:

 location /calibre-web {
                proxy_pass              http://<your-ip>:8083;
                proxy_set_header        Host            $http_host;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Scheme        $scheme;
                proxy_set_header        X-Script-Name   /calibre-web;
        }

修改为如下代码即可:

  location / {
                proxy_pass              http://192.168.1.33:8083;
                proxy_set_header        Host            $http_host:$server_port;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Scheme        $scheme;
                proxy_set_header        X-Script-Name   /calibre-web;
        }

其他项目反代相同,只需将proxy_set_header Host $http_host;修改为proxy_set_header Host $http_host:$server_port; 即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据