nginxip訪問網站
❶ 網站nginx配置限制單個IP訪問頻率,預防DDOS惡意攻擊
對於網站來說,尤其是流量較大出名的網站,經常遇到攻擊,如DDOS攻擊等,雖然有些第三方,如Cloudflare可以擋,但對於動態網站PHP來說,只能擋一部分。這時候需要對於單個IP惡意攻擊做出限流。nginx的兩個模塊可以限流。
nginx兩個限流模塊:
連接頻率限制,ngx_http_limit_conn_mole:官方文檔:https://nginx.org/en/docs/http/ngx_http_limit_conn_mole.html
請求頻率限制,ngx_http_limit_req_mole:官方文檔:https://nginx.org/en/docs/http/ngx_http_limit_req_mole.html
網上理論很多,根據名字可知:
當然還是看不懂的話,通俗點講(相對於時間比較):
比如秒殺,搶購,連接頻率限制和請求頻率限制應該配合使用 , 使用連接頻率限制同一IP同時只能有3個連接, 再使用請求頻率限制對於同一ip的請求,限制平均速率為5個請求/秒 , 這樣比單獨只使用一種限制要好很多。
比如只使用請求頻率限制 , 可以精確地限制同一ip1秒只能發起5次的http請求 , 假如同一ip1秒內發起了100000次請求 , 雖然限制了只有5次成功響應 , 但是其他的99995次的請求TCP握手建立http連接是不是會消耗伺服器資源? 所以還需要配合使用。
1、limit_req_zone,示例:
2、limit_conn_zone,示例:
3、搭配一起使用
1、ab命令
ab是apache自帶的壓力測試工具。一般不用額外安裝,ab非常實用,它不僅可以對apache伺服器進行網站訪問壓力測試,也可以對或其它類型的伺服器進行壓力測試。比如nginx、tomcat、IIS等。
測試命令
2、wrk命令
需自己安裝,地址:https://github.com/wg/wrk
安裝
測試命令:
還有其他壓測工具,自行研究
❷ 如何在CloudFlare下Nginx實現訪客真實IP網站日誌
做英文內容站套上Cloudflare CDN既可以加快訪問速度又可以避免被攻擊。可是如果需要通過網站日誌分析蜘蛛來訪,是否被採集、被攻擊等情況,但日誌上全部都是CDN(cloudflare)節點的 IP。那麼在用CDN加速的同時,如何獲取訪客真實IP並記錄到日誌上呢?
查看CloudFlare官方文檔《Restoring original visitor IPs: Logging visitor IP addresses》,在這種情況下可以通過nginx的realip模塊來獲取用戶的IP,這里以cloudflare和lnmp一鍵包為例。
修改lnmp.conf文件,並且升級nginx即可。
在lnmp.conf添加–with-http_realip_mole,如下。
升級nginx
在 http://nginx.org/en/download.html 查看版本,然後輸入合適的版本。
等待升級完成即可。
修改網站的配置文件
/usr/local/nginx/conf/nginx.conf
在server後面的http{}中添加如下內容
重載nginx配置生效:
以下是nginx.conf例子文件