Nginx是一款口碑很是不錯的反向代理、負載均衡服務器。聽說併發支持可達5萬。
在部署WAF時常常使用,常見的一種網絡結構是:Nginx在最前端,作爲反向代理、負載均衡,Nginx後方,是業務服務器集羣。
前端
本文經過實際測試,驗證這種方法是否高效、有多少RPS性能損失。若是數據不是指向Nginx,而是指向WAF自己,性能又是如何。
系統:Windows
測試使用:Nginx、ShareWAF(一款WAF產品,官網:http://www.sharewaf.com/)、ab
測前準備:使用www.test.com域名,已修改host進行本地解析。
其它:Nginx裝在一臺電腦上,ShareWAF裝在另外一臺電腦(ip:192.168.1.19),兩臺電腦配置均不高。
一、Nginx配置以下:
3個負載均衡指向:
nginx
未使用負載均衡,只作反向代理:
服務器
測試時,Nginx會分別使用這兩種配置方式。
二、
使和ab工具進行測試,
ab -c100 -n100 http://www.test.com/
(已修改host,www.test.com指向127.0.0.1,即本機Nginx,Nginx轉發數據到WAF)
測試結果以下:
網絡
三、
使用ab直接指向WAF,不經Nginx:
併發
四、結論說明:
ab連nginx,RPS爲36左右;
ab直接連WAF,RPS爲86左右;
使用Nginx作負載或反向代理,RPS性能下降50%以上。
那麼,
若是在接入WAF以前,是用Nginx作的負載均衡或反向代理,後面接的是業務服務器。
在接入WAF時,若是能直接跳過Nginx,效率最高。即做WAF取代nginx,好比上面測試的ShareWAF是具有這個功能的,能夠取代Nginx。負載均衡