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;
即可。