Ошибка настройки 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 шт):
default_server - это не название, это указатель на то, что при наличии нескольких listen 80 с разными server_name именно этот блок будет обрабатывать запросы на адреса, не перечисленные ни в одном server_name.
Как nginx обрабатывает запросы
В вашем случае надо в строке
listen 5001 proxy_server;
убрать proxy_server или заменить на default_server
Так как для Nginx необходимо понимать с какого урла какие правила разруливать, тогда нужно прописать в hosts соответствующие домены и тогда Nginx поймет, что куда ему отправлять.