我正在尝试使用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;
}
}
但我似乎无法将它们结合起来做我想做的事情。
看起来我能够使用额外的位置块来做到这一点:
server {
listen 80;
location = /abc/ {
return 302 /abc/def;
}
location /abc/ {
proxy_pass http://localhost:8080/;
}
}