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

Лучший способ предотвратить сервер по умолчанию?

У меня есть несколько виртуальных хостов, и я хотел бы «отключить» виртуальный хост по умолчанию, используя пустую страницу, страницу с ошибкой или что-то еще, что является наиболее эффективным использованием ресурсов 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

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.1#configure-nginx

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;
    }
}