Ошибка настройки Nginx для двух сайтов

Всем привет.

У меня есть два приложения - одно для авторизации и второе для прокси. Авторизацию хочу слушать на 80 порту, а прокси - на 5001. Хочу их запускать докерами. Сделал докер-компоус и создал такой конфиг для нжинкс:

server {

    listen 80 default_server;

    location / {
        proxy_pass http://flask_main:5000;

        # Do not change this
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {

    listen 5001 proxy_server;

    location / {
    proxy_pass http://flask_proxy:5001;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Scheme $scheme;
    proxy_set_header X-Script-Name /;
    }
}

Пишет ошибку:

nginx    | nginx: [emerg] invalid parameter "proxy_server" in /etc/nginx/conf.d/project.conf:17

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

Автор решения: PZBird

default_server - это не название, это указатель на то, что при наличии нескольких listen 80 с разными server_name именно этот блок будет обрабатывать запросы на адреса, не перечисленные ни в одном server_name.

Как nginx обрабатывает запросы

В вашем случае надо в строке listen 5001 proxy_server; убрать proxy_server или заменить на default_server

→ Ссылка
Автор решения: Viktor Andriichuk

Так как для Nginx необходимо понимать с какого урла какие правила разруливать, тогда нужно прописать в hosts соответствующие домены и тогда Nginx поймет, что куда ему отправлять.

→ Ссылка