Nginx服務(wù)器屏蔽與禁止屏蔽網(wǎng)絡(luò)爬蟲的方法
每個(gè)網(wǎng)站通常都會(huì)遇到很多非搜索引擎的爬蟲,這些爬蟲大部分都是用于內(nèi)容采集或是初學(xué)者所寫,它們和搜索引擎的爬蟲不一樣,沒有頻率控制,往往會(huì)消耗大量服務(wù)器資源,導(dǎo)致帶寬白白浪費(fèi)了。
其實(shí)Nginx可以非常容易地根據(jù)User-Agent過濾請(qǐng)求,我們只需要在需要URL入口位置通過一個(gè)簡單的正則表達(dá)式就可以過濾不符合要求的爬蟲請(qǐng)求:
location / {
if ($http_user_agent ~* "python|curl|java|wget|httpclient|okhttp") {
return 503;
}
# 其它正常配置
...
}
注意:變量$http_user_agent是一個(gè)可以直接在location中引用的Nginx變量。~*表示不區(qū)分大小寫的正則匹配,通過python就可以過濾掉80%的Python爬蟲。
Nginx中禁止屏蔽網(wǎng)絡(luò)爬蟲
server {
listen 80;
server_name www.xxx.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#location / {
# root html;
# index index.html index.htm;
#}
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") {
return 403;
}
location ~ ^/(.*)$ {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
可以用 curl 測(cè)試一下
curl -I -A "qihoobot" www.xxx.com
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
基于Nginx實(shí)現(xiàn)限制某IP短時(shí)間訪問次數(shù)
這篇文章主要介紹了基于Nginx實(shí)現(xiàn)限制某IP短時(shí)間訪問次數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Nginx 日志輪轉(zhuǎn)的實(shí)現(xiàn)示例
Nginx日志輪轉(zhuǎn)是監(jiān)控和調(diào)試Web服務(wù)器的重要工具,通過定期歸檔、壓縮和清理日志文件,可以節(jié)省磁盤空間、提高性能并方便故障排查,下面就來介紹一下2024-12-12
解決Nginx 配置 proxy_pass 后 返回404問題
這篇文章主要介紹了Nginx 配置 proxy_pass 后 返回404問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
高性能WEB開發(fā) nginx HTTP服務(wù)器篇
新產(chǎn)品為了效果,做的比較炫,用了很多的圖片和JS,所以前端的性能是很大的問題,分篇記錄前端性能優(yōu)化的一些小經(jīng)驗(yàn)。2010-05-05
Nginx配置系統(tǒng)服務(wù)&設(shè)置環(huán)境變量方式
本文介紹了如何將Nginx配置為系統(tǒng)服務(wù)并設(shè)置環(huán)境變量,以便更方便地對(duì)Nginx進(jìn)行操作,通過配置系統(tǒng)服務(wù),可以使用系統(tǒng)命令來啟動(dòng)、停止或重新加載Nginx,并通過設(shè)置環(huán)境變量可以簡化執(zhí)行其他命令的操作步驟2025-03-03

