У меня есть несколько виртуальных хостов, и я хотел бы «отключить» виртуальный хост по умолчанию, используя пустую страницу, страницу с ошибкой или что-то еще, что является наиболее эффективным использованием ресурсов Nginx, при этом разрешая другим хостам доступ только через предопределенные домены.
Определить default_server который возвращает HTTP 444 код:
server {
listen 80 default_server;
server_name _;
return 444;
}
(Возврат кода ошибки 4xx означает, что запросы могут быть интерпретированы клиентом как неудачный запрос, а не как HTTP 200 пустая страница, но полностью работающая, поверьте мне.)
Просто определите дефолт vhost, который будет указывать на каталог с пустым файлом index.html.
server {
listen 80 default_server;
server_name _ ;
root /var/www/placeholder ;
index index.html;
}
и поместите пустой индекс в / var / www / placeholder
Я изучаю эту форму основной документ asp.net
server {
listen 80 default_server;
# listen [::]:80 default_server deferred;
return 444;
}
Вы также можете найти его в документе nginx
https://nginx.org/en/docs/http/request_processing.html
server {
listen 80;
server_name "";
return 444;
}
Здесь в качестве имени сервера устанавливается пустая строка, которая будет соответствовать запросам без поля заголовка «Host», и возвращается специальный нестандартный код nginx 444, который закрывает соединение.
почему бы просто не отрицать все
server {
listen 80 default_server;
server_name _;
location / {
deny all;
}
}