如何设置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;
}
}
答案 0 :(得分:7)
对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/ ;
}
请注意尾随/
。它实际上有所不同,因为它得到proxy_pass
来规范化请求。我引用:
当请求传递给服务器时,与该位置匹配的规范化请求URI的一部分将被[proxy_pass]指令中指定的URI替换。
这应该有助于找到此页面的人。
答案 1 :(得分:0)
You needs to use this code , i think it work
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 https://192.168.2.2/other ;
}
location / {
proxy_pass https://192.168.1.1;
}
}