我在尝试反向代理.NET应用程序(特别是sharepoint)时遇到了很多麻烦
我的问题是“/ 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
这很好,除了网络应用程序自动发送位置重定向Location: http://192.168.2.115/default.aspx
,因此我添加了{{} 1}}似乎部分工作。
我的问题是,即使某些请求(例如proxy_redirect
)现在被代理到http://192.168.2.115/vmlab/default.aspx
(但显示为http://192.168.5.8/default.aspx
)并且使用proxy_redirect,其他请求也显示在客户端浏览器中(例如javascripts和样式表)仍然显示如下http://192.168.2.115/vmlab/default.aspx
_layouts http://192.168.2.115/
,它缺少必需的“/ vmlab /” URI,因此不存在。
这是我的配置和代理问题,还是设计样式表和javascript代码中的绝对路径?