Nginx禁止指定UA訪問的方法
本文介紹 Nginx 禁止指定 UA 訪問的配置。
UA,即 Http User Agent,在 Nginx 中使用內(nèi)置變量 $http_user_agent 表示,該信息作為 request header 的一部分被發(fā)往 webserver。因此,對(duì) webserver 來說,有一種禁止訪問的方式,就是對(duì) UA 進(jìn)行判斷。
禁止搜索引擎爬蟲
因?yàn)槟愣脑?,并不是太希?Baidu 這類爬蟲來我的網(wǎng)站,所以在 Nginx 中使用 if 對(duì) UA 進(jìn)行判斷:
if ($http_user_agent ~* "qihoobot|Baidu|Baiduspider|Baiduspider-image|Baiduspider-video|Baiduspider-news|Baiduspider-favo|Baiduspider-cpro|Baiduspider-ads|Baiduboxapp|YisouSpider|EasouSpider|YodaoBot|YoudaoBot|Sosospider|Sogou|^$") { return 444; }
禁止下載工具
if ($http_user_agent ~* "Scrapy|HttpClient|Curl|Wget|Idm|Aria2|Axel|Thunder|Youtube-dl|Movgrab|rtorrent|ctorrent|Transmission-cli|vuze") { return 444; }
禁止國產(chǎn)瀏覽器訪問
if ($http_user_agent ~* "360|360SE|360EE|2345Explorer|maxthon|sogou|theworld|qiyu|green|qq|qqbrowser|tt|liebao|lbbrowser|tao|taobao|coolnovo|saayaa|uc|mi|xiaomi|baidu|yandex|micromessenger|wechat|weibo|douban|suning|iqiyi|alipay|ali-ap|ali-ap-pd|ali-am|ali-tb|ali-tb-pd|ali-tm|ali-tm-pd") { return 444; }
禁止指定系統(tǒng)訪問
也有某些國產(chǎn)系統(tǒng),例如 aliyun os 這樣的,我也想禁止它的訪問:
if ($http_user_agent ~* "yunos") { return 444; }
結(jié)論
根據(jù)以上可以看出,要對(duì) UA 進(jìn)行判斷,規(guī)則就是:
if ($http_user_agent ~* "UA關(guān)鍵詞") { ... }
不過這種方法缺點(diǎn)很明顯,因?yàn)?UA 實(shí)在太容易偽造了 ,不過防一下不經(jīng)偽造的請(qǐng)求(例如國產(chǎn)搜索爬蟲)還是可以的。當(dāng)然也有些更靠譜的方式,例如對(duì) session 的驗(yàn)證。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解使用Nginx和uWSGI配置Python的web項(xiàng)目的方法
這篇文章主要介紹了使用Nginx和uWSGI配置Python的web項(xiàng)目的方法,與其他CGI連接方式相比uwsgi的連接性能也較為出眾,需要的朋友可以參考下2015-12-12詳解Nginx虛擬主機(jī)配置中server_name的具體寫法
這篇文章主要介紹了Nginx虛擬主機(jī)配置中server_name的具體寫法,server_name服務(wù)器名是虛擬主機(jī)中必須配置的重要參數(shù),需要的朋友可以參考下2016-03-03nginx proxy_set_header設(shè)置自定義header的實(shí)現(xiàn)步驟
在Nginx中,使用?proxy_set_header指令可以自定義header并在反向代理時(shí)傳遞到后端服務(wù)器,本文就來詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡、動(dòng)靜分離的原理解析
這篇文章主要介紹了Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡、動(dòng)靜分離的原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02nginx多域名轉(zhuǎn)發(fā)的實(shí)現(xiàn)
本文主要介紹了nginx多域名轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03詳解linux中 Nginx 常見502錯(cuò)誤問題解決辦法
這篇文章主要介紹了詳解linux中 Nginx 常見502錯(cuò)誤問題解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請(qǐng)求到外網(wǎng)的實(shí)現(xiàn)示例
本文主要介紹了配置nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)請(qǐng)求到外網(wǎng)的實(shí)現(xiàn)示例,通過nginx配置代理實(shí)現(xiàn)內(nèi)網(wǎng)對(duì)外網(wǎng)接口數(shù)據(jù)的獲取,涉及nginx安裝、配置SSL、日志設(shè)置和錯(cuò)誤排查,感興趣的可以了解一下2024-10-10