Nginx+PHP(FastCGI)搭建胜过Apache 10倍的Web服务器.docx
文本预览下载声明
Nginx(engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 Nginx 的中文维基:/NginxChs 在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。 根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800 时,导致服务器内存和Swap空间用满而崩溃。 而这台 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样 php-cgi消耗的总内存数才500M。 在3万并发连接下,访问Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):2008-11-21 22:24 上传下载附件(16 KB) 以下为 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和64个php-cgi进程时的系统负载情况:2008-11-21 22:24 上传下载附件(9.89 KB) 安装步骤: (系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 4.4) 一、获取相关开源程序: 1、下载程序源码包到当前目录: 略。 2、解压缩: mkdir -p /data0/softwarecd /data0/softwareunzip nginx-php-1.zipunzip nginx-php-2.zipcd /data0/software/nginx-php复制代码二、安装PHP 5.2.5(FastCGI模式) 1、编译安装PHP 5.2.5所需的支持库: tar zxvf libiconv-1.11.tar.gzcd libiconv-1.11/./configure --prefix=/usr/localmakemake installcd ../tar zxvf freetype-2.3.5.tar.gzcd freetype-2.3.5/./configuremakemake installcd ../tar zxvf libpng-1.2.20.tar.gzcd libpng-1.2.20/./configuremakemake installcd ../tar zxvf jpegsrc.v6b.tar.gzcd jpeg-6b/./configure --enable-static --enable-sharedmakemake installmake install-libcd ../tar zxvf libxml2-2.6.30.tar.gzcd libxml2-2.6.30/./configuremakemake installcd ../tar zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configuremakemake install/sbin/ldconfigcd libltdl/./configure --enable-ltdl-installmakemake installcd ../../tar zxvf mhash-0.9.9.tar.gzcd mhash-0.9.9/./configuremakemake installcd ../cp /usr/local/lib/libmcrypt.* /usr/libln -s /usr/local/lib/libmhash.so.2
显示全部