您好,欢迎访问三七文档
[文章作者:张宴本文版本:v4.6最后修改:2008.11.14转载请注明原文链接:]前言:本文是我撰写的关于搭建“Nginx+PHP(FastCGI)”Web服务器的第4篇文章。本系列文章作为国内最早详细介绍Nginx+PHP安装、配置、使用的资料之一,为推动Nginx在国内的发展产生了积极的作用。这是一篇关于Nginx0.7.x系列版本的文章,安装、配置方式与第3篇文章相差不大,但配置参数有不同。Nginx0.7.x系列版本虽然为开发版,但在很多大型网站的生产环境中已经使用。链接:《2007年9月的第1版》、《2007年12月的第2版》、《2008年6月的第3版》Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor将源代码以类BSD许可证的形式发布。Nginx超越Apache的高性能和稳定性,使得国内使用Nginx作为Web服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web2.0网站。Nginx的官方中文维基:在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx0.7.21+PHP5.2.6(FastCGI)可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。而这台Nginx0.7.21+PHP5.2.6(FastCGI)服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi消耗的总内存数才500M。在3万并发连接下,访问Nginx0.7.21+PHP5.2.6(FastCGI)服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):我生产环境下的两台Nginx+PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx+PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不高:安装步骤:(系统要求:Linux2.6+内核,本文中的Linux操作系统为CentOS5.1,另在RedHatAS4上也安装成功)一、获取相关开源程序:1、利用CentOSLinux系统自带的yum命令安装、升级所需的程序库(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装):sudo-sLANG=Cyum-yinstallgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrb5krb5-devellibidnlibidn-developensslopenssl-devel2、RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包(事先可通过类似“rpm-qa|greplibjpeg”的命令查看所需的RPM包是否存在,通常是“xxx-devel”不存在,需要安装)。RedHat可以直接利用CentOS的RPM包安装,以下是RPM包下载网址:①、RedHatAS4&CentOS4://mirror.be10.com/centos/4/os/x86_64/CentOS/RPMS/②、RedHatAS5&CentOS5://mirror.be10.com/centos/5/os/x86_64/CentOS/③、RPM包搜索网站://、下载程序源码包:本文中提到的所有开源软件为截止到2008年8月28日的最新稳定版。①、从软件的官方网站下载:mkdir-p/data0/softwarecd/data0/softwarewget://://php-fpm.anight.org/downloads/head/php-5.2.6-fpm-0.5.9.diff.gzwget://mirror.x10.com/mirror/mysql/wget://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0wget=1194463373&big_mirror=0wget://downloads.sourceforge.net/mhash/mhash-0.9.9.tar.gz?modtime=1175740843&big_mirror=0wget://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2②、从blog.s135.com下载(比较稳定,只允许在本站,或者在Linux/Unix下通过Wget、Curl等命令下载以下软件):mkdir-p/data0/softwarecd/data0/softwarewget://blog.s135.com/soft/linux/nginx_php/php/php-5.2.6.tar.gzwget://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.29-rc.tar.gzwget://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gzwget://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.3.tgzwget://blog.s135.com/soft/linux/nginx_php/pcre/pcre-7.7.tar.gzwget二、安装PHP5.2.6(FastCGI模式)1、编译安装PHP5.2.6所需的支持库:tarzxvflibiconv-1.12.tar.gzcdlibiconv-1.12/./configure--prefix=/usr/localmakemakeinstallcd../tarzxvflibmcrypt-2.5.8.tar.gzcdlibmcrypt-2.5.8/./configuremakemakeinstall/sbin/ldconfigcdlibltdl/./configure--enable-ltdl-installmakemakeinstallcd../../tarzxvfmhash-0.9.9.tar.gzcdmhash-0.9.9/./configuremakemakeinstallcd../cp/usr/local/lib/libmcrypt.*/usr/libln-s/usr/local/lib/libmhash.so.2/usr/lib/libmhash.so.2tarzxvfmcrypt-2.6.7.tar.gzcdmcrypt-2.6.7//sbin/ldconfig./configuremakemakeinstallcd../2、编译安装MySQL5.1.29-rc/usr/sbin/groupaddmysql/usr/sbin/useradd-gmysqlmysqltarzxvfmysql-5.1.29-rc.tar.gzcdmysql-5.1.29-rc/./configure--prefix=/usr/local/webserver/mysql/--enable-assembler--with-extra-charsets=complex--enable-thread-safe-client--with-big-tables--with-readline--with-ssl--with-embedded-s
本文标题:Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务
链接地址:https://www.777doc.com/doc-5088382 .html