服務器大家都不陌生,隨着科技的發展企業對於服務器的選擇也是多種多樣。雲服務對我們帶來了便利,架構即服務,軟件即服務等。但是雲服務的背後我們對服務的控制能力有時候缺有了限制。公司用的是阿里雲的負載均衡器-SLB,SLB與後端nginx流量爲內網,這個時候面對這洪水攻擊和爬蟲的時候我們單從WEB服務器的iptables層很難做到隔離IP。下面我們巧用nginx來實現IP隔離 |
場景: 前端SLB--->nginx---->proxy
SLB是阿里雲的一款負載均衡服務產品,和LVS一樣,我們可以理解爲LVS服務,(但是我們沒有對lvs服務器的管理權限)
此處勾選即可
開啓tomcat的X-Forwarded-For,在tomcat/conf/server.xml中,修改AccessLogValve日誌紀錄功能爲如下內容:
<valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%{X-Forwarded-For}i %h %l %u %t %r %s %b"></valve>
提示:修改完重啓生效!!
在Server標籤下添加如下幾行
set $allow true; if ($http_x_forwarded_for ~ "106.121.*.*|106.121.71.120|106.121.77.28|106.121.74.130|218.109.235.254"){ set $allow false; } if ($allow = false){ return 404; } #提示:IP添加在上面!
小結: 因爲無法禁止用戶進行訪問,我們設置404可以讓IP無法進行訪問數據庫。不然數據庫會被查詢語句進行刷爆。