Nginx位置块用于两个url模式

问题描述 投票:0回答:1

我正在尝试使用nginx proxy_pass为我反向代理Web应用程序。非正式地,我正在尝试执行以下操作:

http://localhost/abc/$1 --> http://localhost:8080/$1

除了$1为空的特殊情况,在这种情况下我想:

http://localhost/abc --> http://localhost:8080/def

我注意到我可以用这个来做前者:

server {
    listen 80;

    location /abc/ {
        proxy_pass http://localhost:8080/;
    }
}

后者用这个:

server {
    listen 80;

    location /abc/ {
        proxy_pass http://localhost:8080/def;
    }
}

但我似乎无法将它们结合起来做我想做的事情。

nginx nginx-location nginx-reverse-proxy
1个回答
0
投票

看起来我能够使用额外的位置块来做到这一点:

server {
    listen 80;

    location = /abc/ {
        return 302 /abc/def;
    }

    location /abc/ {
        proxy_pass http://localhost:8080/;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.