Url 每个位置的Nginx/将uri重写为代理\u传递
如果您希望根据位置通过proxypass将URL请求代理到两个不同的后端,最快和最干净的解决方案是什么Url 每个位置的Nginx/将uri重写为代理\u传递,url,nginx,rewrite,proxypass,Url,Nginx,Rewrite,Proxypass,如果您希望根据位置通过proxypass将URL请求代理到两个不同的后端,最快和最干净的解决方案是什么 location /app1/ { alias /var/www/ruby/public; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_ho
location /app1/ {
alias /var/www/ruby/public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri $uri/ @ruby;
}
location @ruby {
proxy_pass http://127.0.0.1:3000;
}
location /app2/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
try_files $uri $uri/ @other;
}
location @other {
proxy_pass http://127.0.0.1:8080;
}
使用此配置nginx将“/app1”或“/app2”传递给代理,后端无法识别url/命令
例如,您希望传递到http://127.0.0.1:3000
访问http:///app1/messages
-但在上面的配置中,也将/app1/
作为http://127.0.0.1:3000/app1/messages
。同样的情况也适用于/app2
尝试将“/”放在上游名称的末尾
e、 g
请参阅本帖:
这不起作用,因为
“代理\u pass不能在正则表达式给定的位置包含URI部分…”
,请参阅。
proxy_pass http://127.0.0.1:8080/;