nginx反向代理与NodeJS应用程序和redirect

我一直在研究这个问题太久,所以我需要来请求专家的帮助! 我的查询是非常类似于这里问: nginx代理传递redirect忽略端口,但我相信,我的节点应用程序的行为略有不同。

我正在运行Intel AMT NodeJS应用程序meshcommander( http://www.meshcommander.com/meshcommander ),它在端口3000上提供一个web应用程序。该应用程序在服务器192.168.0.27上运行。 我的nginx服务器在端口80上的同一台服务器上运行,这就是我在主服务器块下设置了反向代理的方式:

location /intel { satisfy any; allow 192.168.0.0/24; deny all; auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; rewrite /intel(/.*) /$1 break; proxy_pass http://192.168.0.27:3000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 

我遇到的第一个问题是,当你直接在端口3000上打开节点应用程序时,像这样:

 http://192.168.0.27:3000 

它会redirect到另一个页面:

 http://192.168.0.27:3000/default.htm 

不幸的是,当你转到:nginx反向代理不会自动发生这种情况:

 http://192.168.0.27/intel 

但没有问题,这只是为了调用这个方法:

 htt://192.168.0.27/intel/default.htm 

这很好,但是在使用web应用程序时,最终需要调用局域网上的另一台服务器,以及发生故障的地方。 我可以看到节点应用程序中的某些操作调用页面,如:

 http://192.168.0.27/intel/webrelay.ashx?p=1&host=10.7.7.6&port=16992&tls=0 

它返回一个404,我可以看到这是它被发送的方式:

 Request URL:http://192.168.0.27/intel/webrelay.ashx?p=1&host=10.7.7.6&port=16992&tls=0 Request method:GET Remote address:192.168.0.27:80 

“远程地址”显然是错误的,因为主要的nginx服务器不是反向代理服务器。 当直接访问webapp时,这些是工作的头文件:

 Request URL:http://192.168.0.27:3000/webrelay.ashx?p=1&host=10.7.7.6&port=16992&tls=0 Request method:GET Remote address:192.168.0.27:3000 

我的问题是我认为我已经尝试了一切在nginx反向代理块来做到这一点,但认为我可能需要调整源代码的nodejs应用程序,这是可能的源代码提供,但在我开始之前,path我以为我会问在这里,如果还有什么我应该尝试在Nginx的conf?

提前谢谢了。