#nginx #nginx-location #nginx-reverse-proxy
#nginx #nginx-расположение #nginx-обратный прокси
Вопрос:
Я пытаюсь использовать nginx proxy_pass для обратного прокси-сервера веб-приложения для меня. Неофициально я пытаюсь сделать следующее:
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;
}
}
Но, похоже, я не могу объединить их, чтобы делать то, что я хочу.
Ответ №1:
Похоже, я смог сделать это с помощью дополнительного блока местоположения:
server {
listen 80;
location = /abc/ {
return 302 /abc/def;
}
location /abc/ {
proxy_pass http://localhost:8080/;
}
}