将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。负载均衡

相关文章
相关标签/搜索