Ответ 1
Использовать return 444; Этот нестандартный код состояния 444 заставляет nginx просто закрыть соединение, не отвечая на него.
if ($http_user_agent ~ (agent1|agent2) ) {
return 444;
}
Я хочу заблокировать нежелательные боты от доступа к сайтам на сервере.
Может ли nginx сразу же удалить/убить соединение, когда обнаружен определенный Бот?
if ($http_user_agent ~ (agent1|agent2) ) {
**KILL CONNECTION**;
}
Что-то вроде примера выше.
Использовать return 444; Этот нестандартный код состояния 444 заставляет nginx просто закрыть соединение, не отвечая на него.
if ($http_user_agent ~ (agent1|agent2) ) {
return 444;
}
Да, это возможно. См. Вопрос ниже - это перенаправление на основе строки агента, но вы действительно можете делать все, что хотите (страница с ошибкой или что-то еще).
Nginx proxy или переписать в зависимости от пользовательского агента
Однако, обратите внимание, что приличный бот будет подделывать свою строку пользовательского агента, чтобы выглядеть так же, как обычный браузер, поэтому это отнюдь не является надежным способом удержать ботов от подметания вашего сайта.
server {
listen 8443 default ssl;
error_page 404 403 = 444; #disconnect if 404 or 403
root /srv/empty; #Empty forder
...
...
location /summary_report{
root /srv/www;
index index.html index.htm;
}
}
https://127.0.0.1/ Disconnect.
https://127.0.0.1/summary_report Не отсоединяться.