LNMP–Nginx禁止指定user_agent
編輯虛擬主機配置檔案
[root@LampLinux ~]# vim /usr/local/nginx/conf/vhosts/test.conf
在上一節全域性訪問控制配置deny 192.168.137.0/24;下面新增:
#deny 127.0.0.1;
#deny 192.168.137.0/24;
if ($http_user_agent ~* `curl|baidu|yyyyy`) # ~* 表示“不區分大小”寫匹配
{
return 403;
}
我們去測試怎麼模擬user_agent,為了防止影響,要先把“訪問控制”的內容註釋“#”掉:
重載入:
[root@LampLinux ~]# /usr/local/nginx/sbin/nginx -t
[root@LampLinux ~]# /usr/local/nginx/sbin/nginx -s reload
測試:
[root@LampLinux ~]# curl -x192.168.137.11:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
Server: nginx/1.6.2
Date: Wed, 12 Aug 2015 11:40:39 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
現在去模擬一個user_agent:
[root@LampLinux ~]# curl -A “asdfasdfasfdsf.sdfafsdfaf” -x192.168.137.11:80 www.test.com/forum.php -I
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Wed, 12 Aug 2015 11:43:27 GMT
… …
用在什麼情況下?
你的網站訪問量很大,伺服器資源緊缺,我們成本要控制的嚴謹一點,伺服器會有一些吃力,網站都會給搜尋引擎一個“蜘蛛”去爬取,爬取得時候,跟我們現實去搜尋一樣的,同樣也會訪問我們的資料庫,耗費我們的PHP資源,所以我們要把一些不太重要的搜尋引擎“蜘蛛爬蟲”給禁止掉,比如我們把360spider、有道或搜狗的spider全部禁止掉,當然我們可以封IP,但是他的IP不固定,很麻煩,所以我們就想到使用user_agent,非常簡單,只要是這裡 ($http_user_agent ~* `curl|baidu|yyyyy`) 包含curl、baidu、yyyyy欄位的都 return 403;
實驗:
[root@LampLinux ~]# curl -A “asdfasbaidufdsf.sdfafsdfaf” -x192.168.137.11:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
Server: nginx/1.6.2
Date: Wed, 12 Aug 2015 11:45:10 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
[root@LampLinux ~]# curl -A “asdfasyyyyyfdsf.sdfafsdfaf” -x192.168.137.11:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
Server: nginx/1.6.2
Date: Wed, 12 Aug 2015 11:47:19 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
相關文章
- [LNMP]安裝NginxLNMPNginx
- Nginx技巧——Nginx/Apache下禁止指定目錄執行PHP指令碼(轉自運維之美)NginxApachePHP指令碼運維
- LNMP環境搭建(二):NginxLNMPNginx
- LNMP環境搭建——Nginx篇LNMPNginx
- 搭建 lnmp 環境之 nginx 篇LNMPNginx
- LNMP—Nginx的編譯安裝LNMPNginx編譯
- LNMP—Nginx的使用者認證LNMPNginx
- [LNMP]Nginx-1.6.3編譯安裝LNMPNginx編譯
- Nginx網站服務與LNMP構建Nginx網站LNMP
- Nginx網站服務LNMP搭建論壇Nginx網站LNMP
- [LNMP]Nginx防盜鏈與訪問控制LNMPNginx
- ssh禁止root登入及遮蔽指定ip
- nginx 是如何禁止訪問php的NginxPHP
- css禁止選中指定文字程式碼例項CSS
- Mac下安裝LNMP(Nginx+PHP5.6)環境MacLNMPNginxPHP
- centos7搭建lnmp編譯安裝nginx【二】CentOSLNMP編譯Nginx
- 從零搭建LNMP環境(二) - 整合Nginx與PHPLNMPNginxPHP
- 禁止頻繁請求的ip訪問nginxNginx
- LNMP架構編譯安裝(Linux、Nginx、Mysql、PHP)LNMP架構編譯LinuxNginxMySqlPHP
- 基於 LNMP 的 Nginx 百萬併發之路 (四)熱部署LNMPNginx熱部署
- ubuntu14.04 lnmp(nginx1.9+php7.0+mysql5.7)UbuntuLNMPNginxPHPMySql
- nginx配置攔截指定國家IPNginx
- nginx指定埠開啟gzip壓縮Nginx
- 小需求推動新語言快速學習:nginx lua 根據 user_agent 顯示不同的頁面Nginx
- HHvm建站環境搭建方法:Nginx、lnmp/lamp等安裝部署NginxLNMPLAMP
- Nginx禁止特定使用者代理(UserAgents)訪問(轉)Nginx
- shell之lnmp(nginx-1.0.5+php-fpm5.3.6+mysql)安裝指令碼LNMPNginxPHPMySql指令碼
- 怎樣在啟動OS X時禁止載入指定分割槽
- Laravel 在 Nginx 中非指定 public 目錄的配置LaravelNginx
- nginx叢集中圖片指定一個地址中Nginx
- nginx二級目錄代理minio指定桶Nginx
- linux中nginx下禁止某目錄執行php程式LinuxNginxPHP
- Win10系統怎麼設定禁止訪問指定網站Win10網站
- linux安全篇:禁止頻繁訪問的ip訪問nginxLinuxNginx
- 教你如何處理Nginx禁止ip加埠訪問的問題Nginx
- Mac os 使用 (homebrew) 從零搭建 PHP,nginx,MySQL,Redis (LNMP) 開發環境MacPHPNginxMySqlRedisLNMP開發環境
- Docker安裝LNMP-ubuntu18.04+nginx1.14+mysql5.7+php7.3DockerLNMPUbuntuNginxMySqlPHP
- 基於 LNMP 的 Nginx 百萬併發之路 (一)核心要素、模組、配置概述LNMPNginx