У меня есть доменное имя, скажем example.com, которое указывает на мой сервер. И мой nginx.conf:
upstream domain {
server 127.0.0.1:8002;
}
server {
listen 80;
server_name <example.com>;
client_max_body_size 10M;
keepalive_timeout 15;
Во время разработки я хочу деактивировать example.com. Я заменяю это на <different_name>
.
server {
listen 80;
server_name <different_name>;
client_max_body_size 10M;
keepalive_timeout 15;
Он отлично работает, как и ожидалось, с <different_name>
но он все еще продолжает отвечать на <example.com>
. И я не могу понять почему. Я бы хотел, чтобы nginx вообще не отвечал на <example.com>
.
Естественно, я не забыл перезапустить такие сервисы, как gunicorn и nginx.
Изменить: это может быть дублированный пост, как было предложено. На мой взгляд, способ освещения проблемы в упомянутом вами сообщении сбивает с толку. Даже название не понятно. "nginx open reverse proxy" Что это значит серьезно? Я попытался ясно изложить свою проблему, имеющую аналогичное решение, имея в виду, что она может / должна быть многоразовой и гораздо более понятной для всех.
Вкратце: удалив производственные запросы доменных имен для этого домена, они не будут заблокированы, они перейдут на сервер по умолчанию.
Перефразировано из руководство:
Nginx проверяет только поле заголовка запроса «Хост», чтобы определить, на какой сервер следует направить запрос. Если его значение не совпадает ни с одним именем сервера или запрос вообще не содержит этого поля заголовка, то nginx направит запрос на сервер по умолчанию. Если явно не настроено с
default_server
сервер по умолчанию - это первый один.
Вы можете создать минимальный сервер по умолчанию, который либо возвращает страницу по умолчанию, либо сообщение об ошибке, например:
server {
listen 80 default_server;
server_name _ ;
return 503 "No server is currently configured for the requested host." ;
}