解决Nginx Proxy Manager反代后部分站点信息无法访问

问题描述

Nginx Proxy Manager是一个图形化的nginx反代配置程序,可以让用户通过UI界面即可调整Nginx的配置信息。

我相信很多人在使用它的过程中会经常遇到反代了某一个服务后出现一些站点资源无法加载或出现端口丢失的问题(自动跳转到80端口)以及502错误,通常我们手动设置一下路径就可以恢复才能访问。

Nginx-Proxy-Manager

怎么解决这个问题

其实我们并不需要每次遇到改问题就手动修复,我们可以添加一些Nginx的参数,这里我以Dootask这款项目管理软件为例来介绍一下如何解决该问题。

第一步 在Nginx中配置一个站点

这里需要填写外网访问的域名、内网代理ip以及端口信息。

添加一个站点

第二步 启用SSL证书

大部分的网站配置一般到这里保存后就可以通过Https正常访问了,但是DooTask的一些站点信息并不能正常访问到,例如用户的头像信息。

启用SSL证书

第三步 添加Nginx参数解决该问题

首先我们需要知道为什么通过Nginx代理后我们无法访问的原因。经过调用浏览器的调试功能我们可以看到有一些信息的访问还是IP地址并不是我们已经添加好的外网域名,那在外网肯定是没办法正常解析内网的IP的,所以我们需要在高级配置中添加一些参数,让其端口、路径都能够正确的携带给Server。

配置Nginx代理信息

具体参数内容如下,需要改动的只有第2行,其他都可以保持不变,修改完成以后我们就可以正常的访问服务了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
location / {
proxy_pass http://192.168.1.1:80; //需要修改为代理的服务器内网访问地址
proxy_set_header Host $http_host;
proxy_redirect http:// https://; //http强制https
proxy_set_header X-Forwarded-Host $http_host; //携带主机头
proxy_set_header X-Forwarded-Port $server_port; //携带端口
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_http_version 1.1;
}

第四步 到此我们已经解决了该问题

可以看到项目管理软件中头像都已经正常显示,并且调用浏览器后台也可以看到已经没有超时的信息。

Dootask正常显示画面
如果对您有帮助,请小编喝一杯咖啡吧!