將WAF部署在Nginx以後,真的效率最高嗎?


Nginx是一款口碑很是不錯的反向代理、負載均衡服務器。聽說併發支持可達5萬。
在部署WAF時常常使用,常見的一種網絡結構是:Nginx在最前端,作爲反向代理、負載均衡,Nginx後方,是業務服務器集羣。

前端

waf_nginx_01.jpg



本文經過實際測試,驗證這種方法是否高效、有多少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

waf_nginx_02.jpg



未使用負載均衡,只作反向代理:

服務器

waf_nginx_03.jpg



測試時,Nginx會分別使用這兩種配置方式。

二、
使和ab工具進行測試,
ab -c100 -n100 http://www.test.com/
(已修改host,www.test.com指向127.0.0.1,即本機Nginx,Nginx轉發數據到WAF)

測試結果以下:

網絡

waf_nginx_04.jpg



三、
使用ab直接指向WAF,不經Nginx:

併發

waf_nginx_05.jpg




四、結論說明:
ab連nginx,RPS爲36左右;
ab直接連WAF,RPS爲86左右;
使用Nginx作負載或反向代理,RPS性能下降50%以上。

那麼,
若是在接入WAF以前,是用Nginx作的負載均衡或反向代理,後面接的是業務服務器。
在接入WAF時,若是能直接跳過Nginx,效率最高。即做WAF取代nginx,好比上面測試的ShareWAF是具有這個功能的,能夠取代Nginx。負載均衡

相關文章
相關標籤/搜索