基本配置優化(優化後配置樣例,能夠改後直接上生產)javascript
這些參數追加到/etc/sysctl.conf,而後執行sysctl -p 生效。php
#每一個網絡接口接收數據包速度比內核處理速度快的時候,容許發送隊列數目數據包的最大數
net.core.netdev_max_backlog = 262144css
#調節系統同時發起的tcp鏈接數
net.core.somaxconn = 262144html
#該參數用於設定系統中最多容許存在多少TCP套接字不被關聯到任何一個用戶文件句柄上,主要目的爲防止Ddos攻擊
net.ipv4.tcp_max_orphans = 262144java
#該參數用於記錄還沒有收到客戶端確認信息的鏈接請求的最大值
net.ipv4.tcp_max_syn_backlog = 262144node
#nginx服務上建議關閉(既爲0)
net.ipv4.tcp_timestamps = 0nginx
#該參數用於設置內核放棄TCP鏈接以前向客戶端發送SYN+ACK包的數量,爲了創建對端的鏈接服務,服務器和客戶端須要進行三次握手,第二次握手期間,內核須要發送SYN並附帶一個迴應前一個SYN的ACK,這個參
數主要影響這個過程,通常賦予值爲1,即內核放棄鏈接以前發送一次SYN+ACK包。
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1sql
增長反爬蟲配額文件:vim
1 sudo vim /etc/nginx/anti_spider.conf 2 3 #禁止Scrapy等工具的抓取 4 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { 5 return 403; 6 } 7 8 #禁止指定UA及UA爲空的訪問 9 if ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$" ) { 10 return 403; 11 } 12 13 #禁止非GET|HEAD|POST方式的抓取 14 if ($request_method !~ ^(GET|HEAD|POST)$) { 15 return 403; 16 } 17 18 #屏蔽單個IP的命令是 19 #deny 123.45.6.7 20 #封整個段即從123.0.0.1到123.255.255.254的命令 21 #deny 123.0.0.0/8 22 #封IP段即從123.45.0.1到123.45.255.254的命令 23 #deny 124.45.0.0/16 24 #封IP段即從123.45.6.1到123.45.6.254的命令是 25 #deny 123.45.6.0/24 26 27 # 如下IP皆爲流氓 28 deny 58.95.66.0/24;
在網站配置server段中都插入include /etc/nginx/anti_spider.conf. 你能夠在默認的80端口配置上加上此句緩存
重啓Nginx服務
常見的爬蟲UA:
1 FeedDemon 內容採集 2 BOT/0.1 (BOT for JCE) sql注入 3 CrawlDaddy sql注入 4 Java 內容採集 5 Jullo 內容採集 6 Feedly 內容採集 7 UniversalFeedParser 內容採集 8 ApacheBench cc攻擊器 9 Swiftbot 無用爬蟲 10 YandexBot 無用爬蟲 11 AhrefsBot 無用爬蟲 12 YisouSpider 無用爬蟲(已被UC神馬搜索收購,此蜘蛛能夠放開!) 13 jikeSpider 無用爬蟲 14 MJ12bot 無用爬蟲 15 ZmEu phpmyadmin 漏洞掃描 16 WinHttp 採集cc攻擊 17 EasouSpider 無用爬蟲 18 HttpClient tcp攻擊 19 Microsoft URL Control 掃描 20 YYSpider 無用爬蟲 21 jaunty wordpress爆破掃描器 22 oBot 無用爬蟲 23 Python-urllib 內容採集 24 Indy Library 掃描 25 FlightDeckReports Bot 無用爬蟲 26 Linguee Bot 無用爬蟲
使用curl -A 模擬抓取便可,好比:
# -A表示User-Agent # -X表示方法: POST/GET # -I表示只顯示響應頭部 curl -X GET -I -A 'YYSpider' localhost HTTP/1.1 403 Forbidden Server: nginx/1.10.3 (Ubuntu) Date: Fri, 08 Dec 2017 10:07:15 GMT Content-Type: text/html Content-Length: 178 Connection: keep-alive
HTTPS設置