low*_*k3y 15 url rewrite nginx 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_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;
}
Run Code Online (Sandbox Code Playgroud)
使用此配置nginx传递"/ app1"或"/ app2"代理和后端无法识别url /命令..
例如,http://127.0.0.1:3000只有/messages在访问时才传递给http://<nginx>/app1/messages- 但在上面的配置中也传递/app1/为http://127.0.0.1:3000/app1/messages.同样如此/app2
小智 14
尝试将"/"放在上游名称的末尾,例如
proxy_pass http://127.0.0.1:8080/;
Run Code Online (Sandbox Code Playgroud)
请参阅此文章: 如何使用nginx proxy_pass保留请求网址
| 归档时间: |
|
| 查看次数: |
31361 次 |
| 最近记录: |