nginx 防盜鏈防爬蟲配置詳解
新建配置配置文件 (例如進(jìn)入到nginx安裝目錄下的conf目錄,創(chuàng)建: agent_deny.conf)
禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; }
禁止指定UA及UA為空的訪問
#forbidden Scrapy if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } #forbidden UA if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) { return 403; } #forbidden not GET|HEAD|POST method access if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
然后,在網(wǎng)站相關(guān)配置中的 server段插入如下代碼: include agent_deny.conf;
重啟nginx:
/data/nginx/sbin/nginx -s reload
測試 使用curl -A 模擬抓取即可,比如:
curl -I -A 'YYSpider' <<www.xxx.con>>
結(jié)果
[root@11 conf]# curl -I -A 'YYSpider' www.xxx.cn
HTTP/1.1 403 Forbidden
Server: nginx/1.12.0
Date: Wed, 24 Apr 2019 11:35:21 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
模擬UA為空的抓?。?br />
curl -I -A' ' <<www.xxx.cn>>
結(jié)果
[root@11 conf]# curl -I -A' ' www.xxx.cn
HTTP/1.1 403 Forbidden
Server: nginx/1.12.0
Date: Wed, 24 Apr 2019 11:36:06 GMT
Content-Type: text/html
Content-Length: 169
Connection: keep-alive
模擬百度蜘蛛的抓取:
curl -I -A 'Baiduspider' <<<www.xxx.cn>>>
[root@11 conf]# curl -I -A 'Baiduspider' www.xxx.cn
HTTP/1.1 200 OK
Server: nginx/1.12.0
Date: Wed, 24 Apr 2019 11:36:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 12 Apr 2019 13:49:36 GMT
Connection: keep-alive
ETag: "5cb09770-264"
Accept-Ranges: bytes
UA類型
FeedDemon 內(nèi)容采集 BOT/0.1 (BOT for JCE) sql注入 CrawlDaddy sql注入 Java 內(nèi)容采集 Jullo 內(nèi)容采集 Feedly 內(nèi)容采集 UniversalFeedParser 內(nèi)容采集 ApacheBench cc攻擊器 Swiftbot 無用爬蟲 YandexBot 無用爬蟲 AhrefsBot 無用爬蟲 YisouSpider 無用爬蟲(已被UC神馬搜索收購,此蜘蛛可以放開!) jikeSpider 無用爬蟲 MJ12bot 無用爬蟲 ZmEu phpmyadmin 漏洞掃描 WinHttp 采集cc攻擊 EasouSpider 無用爬蟲 HttpClient tcp攻擊 Microsoft URL Control 掃描 YYSpider 無用爬蟲 jaunty wordpress爆破掃描器 oBot 無用爬蟲 Python-urllib 內(nèi)容采集 Indy Library 掃描 FlightDeckReports Bot 無用爬蟲 Linguee Bot 無用爬蟲
nginx 防盜鏈配置
背景:防止第三方引用鏈接訪問我們的圖片,消耗服務(wù)器資源和網(wǎng)絡(luò)流量,我們可以在服務(wù)器上做防盜鏈限制。
實(shí)現(xiàn)防盜鏈的方式有兩種:refer方式和簽名方式。
refer方式實(shí)現(xiàn)防盜鏈
工作模塊:ngx_http_referer_module。
作用變量:$invalid_referer,全局變量。
配置域:server, location
配置:
server { listen 80; server_name www.imcati.com refer-test.imcati.com; root /usr/share/nginx/html; location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ { valid_referers none blocked www.imcati.com; if ($invalid_referer) { return 403; } } }
- valid_referers: 指定資源訪問是通過以下幾種方式為合法,即白名單。 vaild_referers 有效的引用連接,如下,否則就進(jìn)入$invaild_refere,返回403 forbiden。
- none:允許缺失的頭部訪問。
- blocked:允許referer沒有對應(yīng)值的請求。
- server_names:若referer站點(diǎn)域名與server_name中本機(jī)配的域名一樣允許訪問。
到此這篇關(guān)于nginx 防盜鏈防爬蟲配置詳解的文章就介紹到這了,更多相關(guān)nginx 防盜鏈防爬蟲配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows下快速安裝nginx并配置開機(jī)自啟動(dòng)的方法
這篇文章主要介紹了windows下快速安裝nginx 并配置開機(jī)自啟動(dòng)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Nginx添加ipv6模塊以及遇到問題解決方案詳解(親測有效)
IPV4日益稀缺,ipv6已經(jīng)慢慢走上日程,待ipv6在國內(nèi)普及,使用nginx配置ipv6那是肯定的,下面這篇文章主要給大家介紹了關(guān)于Nginx添加ipv6模塊以及遇到問題的解決方案,需要的朋友可以參考下2022-09-09Nginx上對同一IP訪問的特定URL進(jìn)行限流實(shí)現(xiàn)
要在Nginx上對同一IP訪問的特定URL進(jìn)行限流,您可以使用ngx_http_limit_req_module模塊,本文就來介紹一下如何使用,具有一定的參考價(jià)值,感興趣的餓2024-01-01開啟Nginx時(shí)端口被占用提示:Address already in use
這篇文章主要介紹了開啟Nginx時(shí)端口被占用提示:Address already in use的解決方法,文中通過兩種方法給大家介紹了Nginx的啟動(dòng)、停止與重啟 的操作方法 ,需要的朋友可以參考下2018-09-09Nginx禁止國外IP訪問我的網(wǎng)站的實(shí)現(xiàn)
本文主要介紹了Nginx禁止國外IP訪問我的網(wǎng)站的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Nginx服務(wù)器中l(wèi)ocation配置的一些基本要點(diǎn)解析
這篇文章主要介紹了Nginx服務(wù)器中l(wèi)ocation配置的一些基本要點(diǎn)解析,特別對管理以及查找匹配作出了詳細(xì)的講解,需要的朋友可以參考下2015-12-12