我正在尝试创建一个 nginx 配置,将发送到端口 80 上的服务器的所有流量路由到端口 5000,但以下情况除外:
如果地址是/Home/Error,我希望它被重定向到https://somesite.azurewebsites.net/home/unblock
如果地址是/Home/BlockerHasError,我希望它被重定向到https://somesite.azurewebsites.net/home/error
如果地址是/Home/ErrorNotBlocked,我希望它被重定向到https://somesite.azurewebsites.net/home/notblocked
如果地址是 /Home/Foo 我希望它被重定向到 /Home/Error 但我不希望之前的规则发挥作用。基本上如果有人去 /Home/Error 它应该被重定向到 https://somesite.azurewebsites.net/home/unblock,但如果他们去/Home/Foo,他们应该去/Home/Error(实际页面,没有重定向)。
我需要重定向为 302 并且不区分大小写。
我已经接近以下配置,但我似乎无法让 /Home/Foo 重定向工作。没有重定向发生,我只是留在 http://mysite/Home/Foo 而不是 http://mysite/Home/Error。
server {
listen 80;
server_name myServerName;
location /Home/Error {
return 302 https://somesite.azurewebsites.net/home/unblock;
}
location /Home/BlockerHasError {
return 302 https://somesite.azurewebsites.net/home/error;
}
location /Home/ErrorNotBlocked {
return 302 https://somesite.azurewebsites.net/home/notblocked;
}
location /Home/Foo {
return 302 /Home/Error;
}
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}