Nginx禁止指定UA訪問(wèn)的方法
本文介紹 Nginx 禁止指定 UA 訪問(wèn)的配置。
UA,即 Http User Agent,在 Nginx 中使用內(nèi)置變量 $http_user_agent 表示,該信息作為 request header 的一部分被發(fā)往 webserver。因此,對(duì) webserver 來(lái)說(shuō),有一種禁止訪問(wèn)的方式,就是對(duì) UA 進(jìn)行判斷。
禁止搜索引擎爬蟲
因?yàn)槟愣脑颍⒉皇翘M?Baidu 這類爬蟲來(lái)我的網(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;
}
禁止國(guó)產(chǎn)瀏覽器訪問(wè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)訪問(wèn)
也有某些國(guó)產(chǎn)系統(tǒng),例如 aliyun os 這樣的,我也想禁止它的訪問(wèn):
if ($http_user_agent ~* "yunos") {
return 444;
}
結(jié)論
根據(jù)以上可以看出,要對(duì) UA 進(jìn)行判斷,規(guī)則就是:
if ($http_user_agent ~* "UA關(guān)鍵詞") {
...
}
不過(guò)這種方法缺點(diǎn)很明顯,因?yàn)?UA 實(shí)在太容易偽造了 ,不過(guò)防一下不經(jīng)偽造的請(qǐng)求(例如國(guó)產(chǎn)搜索爬蟲)還是可以的。當(dāng)然也有些更靠譜的方式,例如對(duì) session 的驗(yàn)證。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nginx location 配置 正則表達(dá)式實(shí)例詳解
本文通過(guò)實(shí)例代碼給大家介紹了nginx location 配置 正則表達(dá)式的問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
通過(guò)Nginx配置實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)數(shù)據(jù)庫(kù)的操作指南
項(xiàng)目開發(fā)部署中經(jīng)常會(huì)遇到MySQL或Oracle數(shù)據(jù)庫(kù)安裝在內(nèi)網(wǎng),而我們的應(yīng)用服務(wù)只能部署在外網(wǎng),如果實(shí)現(xiàn)外網(wǎng)服務(wù)訪問(wèn)連接內(nèi)網(wǎng)的數(shù)據(jù)庫(kù)呢?本次介紹如何通過(guò)Nginx配置實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)數(shù)據(jù)庫(kù),需要的朋友可以參考下2023-10-10
詳解Nginx反向代理實(shí)現(xiàn)會(huì)話(session)保持的兩種方式
這篇文章主要介紹了詳解Nginx反向代理實(shí)現(xiàn)會(huì)話(session)保持的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
nginx配置中proxy_pass反向代理502的bug記錄
這篇文章主要介紹了nginx配置中proxy_pass反向代理502的bug記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Nginx worker_connections配置太低導(dǎo)致500錯(cuò)誤案例
這篇文章主要介紹了Nginx worker_connections配置太低導(dǎo)致500錯(cuò)誤案例,需要的朋友可以參考下2015-04-04
nginx添加nginx-sticky-module模塊步驟的實(shí)現(xiàn)
nginx-sticky-module模塊是nginx實(shí)現(xiàn)負(fù)載均衡的一種方案,和ip_hash負(fù)載均衡算法會(huì)有區(qū)別的,本文主要介紹了nginx添加nginx-sticky-module模塊步驟的實(shí)現(xiàn),感興趣的可以了解一下2023-08-08
Nginx代理Redis哨兵主從配置的實(shí)現(xiàn)
本文主要介紹了Nginx代理Redis哨兵主從配置的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Nginx實(shí)現(xiàn)UDP四層轉(zhuǎn)發(fā)的過(guò)程
為了解決VPN連接速度慢的問(wèn)題,可以通過(guò)Nginx實(shí)現(xiàn)UDP的四層轉(zhuǎn)發(fā),首先檢查Nginx是否安裝了with-stream模塊,然后修改nginx.conf配置文件進(jìn)行UDP端口的轉(zhuǎn)發(fā)設(shè)置,使用nginx-t檢查配置文件語(yǔ)法,無(wú)誤后重新加載Nginx,這樣通過(guò)國(guó)內(nèi)服務(wù)器中轉(zhuǎn),可以提升連接到國(guó)外服務(wù)器的速率2024-09-09

