Nginx proxy_pass частино не работает

У меня есть такой конфиг. На N порту развернуты приложения.

server {
   listen 80;

   location {
        proxy_pass http://127.0.0.1:501;
    }
   location /autotest {
        proxy_pass http://127.0.0.1:502;
    }
   location /dev {
        proxy_pass http://127.0.0.1:503;
    }
   location /dev/autotest{
        proxy_pass http://127.0.0.1:504;
    }
   location /admin {
        proxy_pass http://127.0.0.1:505;
    }   
   location /dev/admin {
        proxy_pass http://127.0.0.1:506;
    }
}

Первые 4 работают корректно и доступны по имени http://servername/location/method А последние 2 нет. К ним я могу обращаться только http://servername:port/method Что я делаю не так?


Ответы (1 шт):

Автор решения: A V
server {
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:501/;
        proxy_redirect off;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host "servername";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location /autotest/ {
        proxy_pass http://127.0.0.1:502/;
        proxy_redirect off;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host "autotest.servername";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location /dev/ {
        proxy_pass http://127.0.0.1:503/;
        proxy_redirect off;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host "dev.servername";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location /dev/autotest/ {
        proxy_pass http://127.0.0.1:504/;
        proxy_redirect off;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host "dev.autotest.servername";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location /admin/ {
        proxy_pass http://127.0.0.1:505/;
        proxy_redirect off;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host "admin.dev.servername";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location /dev/admin/ {
        proxy_pass http://127.0.0.1:506/;
        proxy_redirect off;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header Host "dev.admin.servername";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Сделал так, заработало.

→ Ссылка