Ответ
Директива default_server в конфигурации Nginx указывает, какой блок server будет обрабатывать входящие HTTP-запросы, если их заголовок Host не совпадает ни с одним из явно объявленных server_name.
Практическое применение:
- Безопасность: Блокировка запросов с подозрительных или несуществующих доменов.
- Редирект: Перенаправление трафика на основной, канонический домен.
- Заглушка: Возврат стандартной ошибки (например, 444 для закрытия соединения).
Пример конфигурации:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _; # Специальное значение для "любой несовпадающий Host"
return 444; # Nginx немедленно закроет соединение
}
Важные нюансы:
- Без явного
default_serverэту роль будет выполнять первый блокserverв конфигурации для данного порта. default_serverможно назначать отдельно для IPv4 и IPv6, а также для разных портов (например, 80 и 443).