Назад | Перейти на главную страницу

server_name в nginx.conf кажется проигнорированным

У меня есть доменное имя, скажем 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." ;
}