1

我在尝试反向代理 .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 代码中使用绝对路径的设计?

4

0 回答 0