nginx proxy_pass到一个目录

use*_*945 7 reverse-proxy nginx

如何设置nginx将单个文件夹反向代理到一个服务器,将其余的root代理反向代理到另一个服务器?

根"/"由CMS管理,而"其他"是我自己的程序(独立于CMS).

这是我目前的配置

server {
    listen  80;
    server_name www.example.com;
    rewrite     ^   https://$server_name$request_uri? permanent;
}

server {
    listen   443;
    ... <ssl stuff> ...

    server_name www.example.com;

    location /other {
        proxy_pass http://192.168.2.2/other ;
    }

    location / {
        proxy_pass http://192.168.1.1;
    }
}
Run Code Online (Sandbox Code Playgroud)

ian*_*dan 9

对nginx文档的引用:

http://wiki.nginx.org/HttpCoreModule#location

http://wiki.nginx.org/HttpProxyModule#proxy_pass

您应该将other位置更改为:

location /other/ {
    proxy_pass http://192.168.2.2/other/ ;
}
Run Code Online (Sandbox Code Playgroud)

请注意尾随/.它实际上有所不同,因为它可以proxy_pass规范化请求.我引用:

当请求传递给服务器时,与该位置匹配的规范化请求URI的一部分将被[proxy_pass]指令中指定的URI替换.

这应该有助于找到这个页面的人.