Я пытаюсь поймать весь трафик, не попавший в файл конфигурации с поддержкой сайтов, и вместо того, чтобы метать 404 по умолчанию, вместо этого вместо 200 вместо этого следует использовать пустой ответ ,Поймать все не обработанные запросы с HTTP 200 + статическим файлом
Так, например, если мой сайт https://www.example.com на IP x.x.x.x
и кто-то переводит https://www.bad.com на мой IP в x.x.x.x
они бы просто получить 200 с пустым содержанием.
Для этого у меня есть файл, расположенный на /var/www/index.html
, который является пустой файл, и иметь следующий набор правил в {nginxdir}/conf.d/200catchall.conf
, который импортируется в стандартном {nginxdir} /nginx.conf файла:
# Serve blank page to any requests not intended for one of our servers
server {
listen 443;
server_name _;
location/{
root /var/www
}
}
Это отлично подходит для рендеринга 200 пустого экрана для запроса на https://www.bad.com. Тем не менее, он пытается пройти через каталог, когда запрашивается что-то вроде https://www.bad.com/cgibin/nofile.php, и заканчивает тем, что бросали ошибку error.log и приводит в конечном счете, в 404.
Я также попытался заменить root
директиву с try_files /var/www/index.html
директивы , который, кажется, дает тот же результат ...
Вытягивали мои волосы на некоторое время на этом - любой совет?
Это то, что в конечном итоге помогло мне. Я использую 204 для всех запросов, которые не предназначены для моего сервера. Благодаря! – matt