我想阻止不需要的機器人訪問服務器上的網站。刪除不需要的連接
當檢測到某個Bot時,nginx可以立即丟棄/終止連接嗎?
if ($http_user_agent ~ (agent1|agent2)) {
**KILL CONNECTION**;
}
就像上面的例子。
我想阻止不需要的機器人訪問服務器上的網站。刪除不需要的連接
當檢測到某個Bot時,nginx可以立即丟棄/終止連接嗎?
if ($http_user_agent ~ (agent1|agent2)) {
**KILL CONNECTION**;
}
就像上面的例子。
if ($http_user_agent ~ (agent1|agent2)) {
return 444;
}
是的,它可以。看到下面的問題 - 這個基於代理字符串的重定向,但你真的可以做任何你想要的(錯誤頁面或其他)。
Nginx proxy or rewrite depending on user agent
但是,請注意 - 一個體面的機器人將假的用戶代理字符串看起來就像一個普通的瀏覽器,所以這絕不是一個可靠的方法,從席捲你的網站成爲機器人。
這個問題是關於刪除連接,你根本不談論。該問題中的示例代碼已經處理了用戶代理的決定,所以這甚至不清楚。 – Kissaki
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/ 斷開。
https://127.0.0.1/summary_report 不斷開。
這只是嘗試在重定向循環中服務/ 444。 – user193661
nginx [關於444的文檔](http://nginx.org/en/docs/http/request_processing.html#how_to_prevent_undefined_server_names) – befzz