У меня странная проблема на моем сервере Nginx. Я использую Nginx как обратный прокси для нескольких служб, работающих на моих серверах внутри.
Вот чего я пытался добиться:
app1.mydomain.com --- --- server 1: 10.0.0.2
\ 10.0.0.1 /
|--- nginx reverse proxy server --- |
/ \
app2.mydomain.com --- --- server 2: 10.0.0.3
Итак, я добавил первый для app1, добавил настройки DNS в моем провайдере домена, и все заработало отлично. Я был очень взволнован, поэтому я пошел на второй, и затем все сломалось. Я запустил, nginx -t
и все прошло отлично. Сервер Nginx все еще работал без ошибок, но я потерял возможность просматривать app1.mydomain.com
Конфигурации в основном одинаковы, за исключением server_name и proxy_pass.
файл: /etc/nginx/sites-available/app1.mydomain.com
server {
server_name app1.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
файл: /etc/nginx/sites-available/app2.mydomain.com
server {
server_name app2.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.3;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Я сделал это, добавив каждую конфигурацию в отдельный файл в sites-available, а затем выполнив следующее:sudo ln -s /etc/nginx/sites-available/app1.mydomain.com /etc/nginx/sites-enabled/
Это отлично сработало для app1, но после того, как я проделал то же самое для app2, я потерял доступ к app1, и app2 не появился.
В моем маршрутизаторе я перенаправил порты 80 и 443 на обратный прокси-сервер 10.0.0.1, и это единственные правила на моем маршрутизаторе. У моего провайдера доменных имен у меня есть правильные записи A, указывающие на правильный IP. Я смог проверить, что все работает с приложением 1, но после создания символической ссылки для приложения 2, чтобы перейти в sites-enabled и перезапустить nginx, я теряю доступ ко всему.
Есть идеи, что происходит? Спасибо!
решение1
@symcbean на самом деле указал на ответ. Конфигурации, которые я опубликовал, были неполными. Для app1 я использовал точно показанную конфигурацию (которая каким-то образом работала), а затем запустил certbot, который добавил конфигурацию TLS и переменную listen в конфигурацию.
Затем я добавил конфигурацию для приложения 2 (точно так, как показано) и не получил никаких ошибок на сервере, но начал получать ошибки об отказе в подключении при попытке доступа к приложению 1 или приложению 2. После добавления конфигурации прослушивания и перезапуска nginx все заработало.
Спасибо!