server_name
Директива 'server_name' задаёт имена хостов, на которые должен отвечать блок сервера в NGINX.
Описание
Директива '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 может влиять на сопоставление запросов в сложных конфигурациях.
Убедитесь, что настроены только допустимые и предназначенные имена хостов, чтобы предотвратить несанкционированный доступ.