server_name

Директива 'server_name' задаёт имена хостов, на которые должен отвечать блок сервера в NGINX.

Синтаксисserver_name name1 [name2 ...];
По умолчаниюnone
Контекст
Аргументы1+

Описание

Директива 'server_name' играет ключевую роль в настройке блоков сервера, определяя имена хостов, которые должны запускать конкретную конфигурацию сервера NGINX. Эта директива принимает один или несколько аргументов, обычно в виде доменных имён, IP-адресов или подстановочных символов. Используя подстановочные символы, такие как *.example.com, NGINX может динамически сопоставлять несколько поддоменов, что делает её универсальным инструментом для управления запросами к разным хостам.

При получении запроса NGINX сравнивает заголовок 'Host' в HTTP-запросе со значениями 'server_name', определёнными во всех блоках сервера. Он выбирает наиболее специфическое совпадение. Если совпадение не найдено, NGINX использует блок сервера по умолчанию, который обычно настроен на прослушивание любых имён хостов, что приводит к ошибочному ответу или перенаправлению в зависимости от конфигурации.

В контексте потоковой передачи мультимедиа, как это реализовано в 'nginx-module-rtmp', директива 'server_name' настраивает, какие имена хостов разрешено подключать к RTMP-потокам сервера. Правильная конфигурация помогает управлять и защищать доставку мультимедиа, позволяя администраторам ограничивать доступ только определёнными доменами и облегчая управление несколькими потоками, размещёнными на одном сервере.

Пример конфига

server {
    listen 1935;
    server_name example.com *.example.com;

    application live {
        live on;
    }
}

Использование неправильного синтаксиса для шаблонов с подстановочными символами может привести к непредвиденному поведению.

Порядок директив server_name может влиять на сопоставление запросов в сложных конфигурациях.

Убедитесь, что настроены только допустимые и предназначенные имена хостов, чтобы предотвратить несанкционированный доступ.

← Ко всем директивам