我在尝试反向代理 .NET 应用程序(特别是共享点)时遇到了很多麻烦
- sharepoint 应用程序位于 192.168.5.8
- nginx 位于 192.168.2.115 并在 192.168.5.200 有另一个 IP
- 我正在使用 nginx 代理多个应用程序,使用 url 来区分每个应用程序
我的问题是“/vmlab/”而不是“/rdp/”
网站可用/默认:
location ^~ /vmlab {
proxy_pass http://192.168.5.8/;
proxy_redirect http://192.168.2.115/ http://192.168.2.115/vmlab/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_set_header Authorization "Basic {base64 string}";
}
location /rdp/ {
proxy_pass http://192.168.2.115:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffering off;
#proxy_buffers 32 4k;
}
因此,当我点击http://192.168.2.115/vmlab
后端请求时,http://192.168.5.8
这很好,除了 Web 应用程序自动发送位置重定向Location: http://192.168.2.115/default.aspx
,因此我添加了proxy_redirect
似乎部分工作的。
我的问题是,即使http://192.168.2.115/vmlab/default.aspx
现在正在使用 proxy_redirect 代理某些请求http://192.168.5.8/default.aspx
(但显示为http://192.168.2.115/vmlab/default.aspx
),但在客户端浏览器中显示的其他请求(例如 javascripts 和样式表)仍然显示如下http://192.168.2.115/
_layouts/...
缺少所需的“/vmlab/” URI,因此不存在。
这是我的配置和代理的问题,还是在样式表和 JavaScript 代码中使用绝对路径的设计?