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