Как дважды изменить прокси с nginx? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть эта конфигурация на nginx server_1:

upstream server_2 {
 server 127.0.0.1:8080;
}

server {
 listen 80;
 server_name *.mydomain.com;
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header X-Real-IP $remote_addr;

 location / {
   proxy_redirect off;
   proxy_pass http://server_2;
 }
}

И эта конфигурация на nginx server_2

proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;

server {
    listen 8080;
    server_name ~^subdomain\.mydomain\.com$;
    location / { proxy_pass http://127.0.0.1:2000; }
}

Теперь перенаправления не работают, например

если / url должен быть перенаправлен на / otherurl и запрос был http://subdomain.mydomain.com/url, URL-адрес перенаправления, возвращаемый браузеру, будет http://server_1 / otherurl вместо http://subdomain.mydomain.com/otherurl

1 Ответ

0 голосов
/ 30 марта 2020

Нашел решение здесь .

Просто удалите proxy_redirect off и добавьте следующую строку в блок местоположения

proxy_set_header HOST $host;

Это станет

 location / {
   proxy_pass http://server_2;
   proxy_set_header HOST $host;
 }
...