为什么nginx proxy_pass到子目录不起作用?

时间:2018-04-18 16:29:10

标签: redirect nginx proxypass

我正在尝试将proxy_pass发送到子目录http://ms.server.com:8085/ms。所以每当有人点击http://ms.example.com' it should be redirected to http://ms.example.com/ms`时。我试图通过以下配置

来做到这一点
upstream example {
  server ms.server.com:8085;
}

server {
    server_name     ms.example.com;
    location / {
      proxy_pass      http://example/ms;
    }
  }

现在我正在重定向到“Nginx测试页面”。

1 个答案:

答案 0 :(得分:-1)

proxy_pass用于通知Nginx在主机级别发送代理请求的位置,并且不考虑URI。

您想要使用的是return语句,如下所示:

upstream example {
   server ms.server.com:8085;
}

server {
    server_name     ms.example.com;

    location = / {
        return 301 http://ms.example.com/ms;
    }

    location / {
        proxy_pass      http://example;
    }
}

这会使用server_name重定向将请求重定向到http://ms.example.com 301的根网址,所有其他流量将传递到定义的上游。