Запрет на обработку несуществующих доменов. Nginx

... или как сохранить тележку ресурсов сервера

Опубликовал Максим Баев, 18 января 2019, 12:48

По умолчанию nginx обрабатывает все запросы показывая html страничку лежащую в /var/www/html/. Начиная знакомиться с Nginx можно подумать, что установить свой единственный сайт, лежащий на сервере, сайтом по умолчанию - хорошая идея. Но это не так. Разрешить обрабатывать только определённые сайты можно добавив в /ets/nginx/sites-availabe/ файл 0-default.conf со следующим содержимым:

server {
    return 444;
}

Также нужно создать симлинк на этот файл в папке /etc/nginx/sites-enabled/

Специальный внутренний код Nginx'а 444 закрывает соединения без ответа, что заставляет браузер показывать своё внутреннее сообщение.

Полный сниппет для Linux:

echo "# Default server
server {
    return 444;
}
" | sudo tee -a /etc/nginx/sites-available/0-default.conf
sudo ln -s /etc/nginx/sites-available/0-default.conf /etc/nginx/sites-enabled/0-default.conf
sudo nginx -t && sudo service nginx reload

Отмена изменений (на всякий случай):

sudo rm /etc/nginx/sites-enabled/0-default.conf
sudo service nginx reload

Другие посты