免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10651 | 回复: 4
打印 上一主题 下一主题

[Web] nginx+php-fpm和apache+php-fpm的动态程序对比 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-14 10:36 |只看该作者 |倒序浏览
本帖最后由 zxpxyz 于 2010-12-14 10:39 编辑

前两天有个朋友发了篇帖子证明了nging+php-fpm和apache+mod_php的差别不是很大,并且又咨询nginx+php-fpm和apache+php-fpm的性能对比。

因为目前的工作环境没有php,所以我昨天搭了一个环境做了一下简单测试。

php-fpm的的搭建方法我参考张宴的博文《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创] 》(http://blog.s135.com/nginx_php_v6

使用的是nginx 0.8.53 php 5.2.14 apache2.2.17  mod_fastcgi-2.4.6 这几个软件。

简述一下php的安装过程

yum install -y mysql-server mysql-devel pcre-devel

tar zxf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../

tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../

tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

tar zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../

tar zxf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-mysql --with-mysqli --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
make ZEND_EXTRA_LIBS='-liconv'
make install
cd ../

修改php-fpm.conf
<value name="owner">apache</value>
<value name="group">apache</value>
<value name="mode">0644</value>
<value name="user">apache</value>
<value name="group">apache</value>
---------------------------------------------
tar zxvf nginx-0.8.53.tar.gz
cd nginx-0.8.35/
./configure --prefix=/usr/local/nginx
make && make install
cd ../

修改一下nginx的配置文件
worker_processes  4;
worker_connections  51200;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
----------------------------------------
tar zxf httpd-2.2.17.tar.gz
cd httpd-2.2.17
./configure --prefix=/opt/httpd --enable-so --enable-cgi --enable-rewrite --enable-cgid --with-mpm=worker
make all install
cd ../

tar zxf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/opt/httpd
make install

修改配置文件
ServerLimit 16
StartServers 2
MaxClients 450
MinSpareThreads 50
MaxSpareThreads 150
ThreadsPerChild 50
User apache
Group apache
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>  
ScriptAlias /fcgi-bin/ "/opt/httpd/fcgi-bin/"
FastCGIExternalServer /opt/httpd/fcgi-bin/php-cgi -host 127.0.0.1:9000 -pass-header Authorization  
AddHandler php-fastcgi .php  
Action php-fastcgi /fcgi-bin/php-cgi  
</IfModule>
---------------------------------
apache跑81
nginx跑82
---------------------------------
测试apache+php-fpm
webbench -c 500 -t60 http://192.168.0.108:81/test.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.0.108:81/test.php
500 clients, running 60 sec.

Speed=3975 pages/min, 3098471 bytes/sec.
Requests: 3975 susceed, 0 failed.

机器状态
top - 10:12:42 up  1:14,  1 user,  load average: 1.05, 0.35, 0.21
Tasks: 136 total,   1 running, 135 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.9%us,  3.0%sy,  0.0%ni, 89.2%id,  0.0%wa,  0.0%hi,  3.6%si,  0.3%st
Mem:    900096k total,   597488k used,   302608k free,    47292k buffers
Swap:  2097144k total,        0k used,  2097144k free,   311028k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                       
5138 apache    15   0 21120 3956 2276 S  3.6  0.4   0:00.34 php-cgi                                                                                                                                                                       
3689 apache    18   0  278m 5400 1236 S  1.0  0.6   0:01.33 httpd                                                                                                                                                                        
4965 apache    18   0  277m 5076 1232 S  1.0  0.6   0:00.40 httpd                                                                                                                                                                        
3445 root      15   0  9936 2892 2304 S  0.7  0.3   0:01.20 sshd                                                                                                                                                                          
3692 apache    18   0  278m 5396 1236 S  0.7  0.6   0:00.85 httpd                                                                                                                                                                        
3695 apache    18   0  278m 5360 1236 S  0.7  0.6   0:01.45 httpd                                                                                                                                                                        
3803 apache    18   0  278m 5348 1236 S  0.3  0.6   0:01.34 httpd                                                                                                                                                                        
4020 apache    18   0  278m 5420 1228 S  0.3  0.6   0:00.70 httpd                                                                                                                                                                        
4048 apache    18   0  278m 5376 1232 S  0.3  0.6   0:00.79 httpd                                                                                                                                                                        
4050 apache    18   0  278m 5436 1232 S  0.3  0.6   0:00.82 httpd                                                                                                                                                                        
4964 root      15   0  2352 1064  808 R  0.3  0.1   0:00.21 top                                                                                                                                                                           
4995 apache    18   0  277m 5040 1232 S  0.3  0.6   0:00.23 httpd                                                                                                                                                                        

----------------------------------------
测试nginx+php-fpm
webbench -c 500 -t60 http://192.168.0.108:82/test.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.0.108:82/test.php
500 clients, running 60 sec.

Speed=3556 pages/min, 2811849 bytes/sec.
Requests: 3556 susceed, 0 failed.

机器状态
top - 10:16:02 up  1:17,  1 user,  load average: 2.97, 1.61, 0.71
Tasks: 130 total,   1 running, 129 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.3%us,  9.3%sy,  0.0%ni, 74.2%id,  0.0%wa,  0.0%hi,  5.3%si,  0.0%st
Mem:    900096k total,   590464k used,   309632k free,    47628k buffers
Swap:  2097144k total,        0k used,  2097144k free,   311736k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                       
3585 nobody    15   0 16896  13m  688 S  7.0  1.5   0:06.53 nginx                                                                                                                                                                        
5153 apache    15   0 21120 3952 2272 S  4.6  0.4   0:01.20 php-cgi                                                                                                                                                                       
5157 apache    16   0 21120 3948 2272 S  1.0  0.4   0:00.03 php-cgi                                                                                                                                                                       
3572 root      16   0 21120 2548  908 S  0.7  0.3   0:00.38 php-cgi                                                                                                                                                                       
5156 apache    15   0 21120 3952 2272 S  0.7  0.4   0:00.90 php-cgi                                                                                                                                                                       
3582 nobody    15   0 19856  16m  688 S  0.3  1.9   0:07.44 nginx            

------------------------------------------

测试的是phpinfo,都是粗略配置,并未深入研究。
经过多次测试发现,如果预热一下,承载力还可更大。
没仔细测试,抛砖引玉。

论坛徽章:
0
2 [报告]
发表于 2010-12-14 12:58 |只看该作者
nginx + apache 这个不错   NGINX继续发挥静态优势   而PHP抛给后端APACHE+mod_php解析  更稳定

论坛徽章:
2
狮子座
日期:2013-08-26 15:25:32金牛座
日期:2013-09-05 15:45:36
3 [报告]
发表于 2010-12-14 16:40 |只看该作者
楼主那两个测试机都是千兆网卡么?
百兆网卡的话

论坛徽章:
0
4 [报告]
发表于 2011-01-02 09:55 |只看该作者
相对来说 nginx+php-fpm 稳定性方面肯定没有模块化的安全。

论坛徽章:
0
5 [报告]
发表于 2011-01-05 09:57 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP