/ 中存储网

Nginx和Apache在负载均衡方面的的比较

2013-12-30 09:10:01 来源:itjs.cn

安装apache2.2.17

gzip -d httpd--****.tar.gz

tar xvf httpd---***.tar

apache的安装参数

./configure --with-included-apr --prefix=/home/lhh/apache2 --enable-so --enable-mods-shared=proxy

apache的prefork参数

<IfModule mpm_prefork_module>

StartServers                 800

MinSpareServers          800

MaxSpareServers         1000

ServerLimit                   1500

MaxClients                    1500

MaxRequestsPerChild   1000

</IfModule>

代理配置

ProxyPass /test balancer://mycluster stickysession=JSESSIONID|jsessionid scolonpathdelim=On

<Proxy balancer://mycluster>

BalancerMember http://192.168.128.136:8180/test

BalancerMember http://192.168.128.136:8280/test

BalancerMember http://192.168.128.139:8180/test

</Proxy>

安装nginx

./configure --prefix=/home/zxg/nginx --with-http_stub_status_module --with-http_ssl_module --with-cc-opt='-O2'

nginx的参数设置

use epoll;#仅用于linux

代理配置

#add by zhao,xingguo

upstream balance-tomcat  {

server   192.168.128.136:8180;

server   192.168.128.136:8280;

server   192.168.128.139:8180;

}

server

{

listen  8085;

server_name  192.168.128.139;

location / {

proxy_redirect     off;

proxy_pass         http://balance-tomcat;

}

}

说明:

1.apache和nginx都作为代理服务器,代理三台相同的tomcat服务器

2.每台tomcat服务器最大性能大概为970request/s(代码里有Thread.sleep(200l);模拟业务)

3.四次测试结果如下:

apache和nginx的反向代理的比较,单位request/s

nginx  800--8000  3248  2409  2774  2135  2410 

apache 600--8000  2431  1645  2198  1288  1909

由此分析可以看出

1.nginx性能高,占用cpu,内存少

2.apache的进程开的太多了,真烦。

3.高并发下nginx有完美的表现

4.apache有会话保持功能,尽管nginx有ip_hash但是不能代替session stick

5.尽量的用nginx和apache同时代理后端的服务器,

nginx对外部的webservice(性能高),apache对外部的web访问(session stick)。