搭建胜过Apache十倍的Web服务器Nginx 0.8.x+PHP 5.2.13(FastCGI)

本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第6篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。第6篇文章主要介绍了Nginx 0.8.x新的平滑重启方式,将PHP升级到了5.2.14,修正了PEAR问题。另将MySQL 5.1.x升级到了5.5.x系列,配置文件变更较大。  

  Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过三年了。Igor 将源代码以类BSD许可证的形式发布。

  Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,盛大在线、金山逍遥网等网络游戏网站,豆瓣、人人网、YUPOO相册、金山爱词霸、迅雷在线等新兴Web 2.0网站。

  在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

  根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到3800时,导致服务器内存和Swap空间用满而崩溃。

  而这台 Nginx 0.8.46 + PHP 5.2.14 (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.8.46 + PHP 5.2.14 (FastCGI) 服务器的PHP程序,仍然速度飞快。下图为Nginx的状态监控页面,显示的活动连接数为28457(关于Nginx的监控页配置,会在本文接下来所给出的Nginx配置文件中写明):  

  我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量,而服务器的系统负载也不高:

  2009年9月3日下午2:30,金山游戏《剑侠情缘网络版叁》临时维护1小时,大量玩家上官网,论坛、评论、客服等动态应用Nginx服务器集群,每台服务器的Nginx活动连接数达到2.8万,这是笔者遇到的Nginx生产环境最高并发值。

时间: 2024-08-02 00:33:33

搭建胜过Apache十倍的Web服务器Nginx 0.8.x+PHP 5.2.13(FastCGI)的相关文章

Nginx0.5.33+PHP5.2.5(FastCGI)搭建胜过Apache10倍的Web服务器_nginx

修正了PHP iconv和gd库冲突的BUG,增加了PHP mcrypt.memcache扩展,修改了PHP和Nginx编译参数,优化了Nginx配置文件,添加了部分功能. Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAPPOP3SMTP 代理服务器. Nginx 是由 Igo Sysoev 为俄罗斯访问量第二的 ambe. 站点开发的,它已经在该站点运行超过两年半了.Igo 将源代码以类BSD许可证的形式发布. Nginx 的中文维

整合apache和tomcat构建Web服务器

linux是最常用的web服务器,本节我们将通过整合apache和tomcat构建一个java/jsp运行平台,详细介绍web服务器的搭建过程. 一.apache与tomcat整合的必要性 Apache是最流行的Web服务器,开放源代码,支持跨平台的应用(可以运行在几乎所有的Linux.Unix.Windows系统平台上),尤其对Linux的支持相当完美. apache的优点有: 功能强大,apache自带了很多功能模块,可根据需求编译自己需要的模块. 配置简单,apache的配置文件非常简单,

从零开始搭建论坛(一):Web服务器与Web框架

[引自selfboot的博客]之前用 Django 做过一个小的站点,感觉Django太过笨重,于是就准备换一个比较轻量级的 Web 框架来玩玩.Web.py 作者已经挂掉,项目好久没有更新,所以不准备用它.而 Flask 也是一个成熟的轻量级 Web 框架,在 github 上有众多的 Star 和 Fork,文档和扩展也很丰富,值得学习. 学习一个框架最好的方式就是用框架做一个项目,在实战中理解掌握框架.这里我用 Flask 框架,使用 Mysql 数据库做了一个论坛系统.麻雀虽小,五脏俱全

使用Apache&花生壳架设Web服务器_服务器

这里讲的是IIS服务器,其实花生壳在Apache下也能正常使用,这一点我在以前的帖子中已经讲过,现在专门把Apache的配置作一详细说明: 首先:当然是下载Apache啦,Apache目前最新的Windows版本是1.3.2X,你可以到它的官方网站去下载最新版(http://www.apache.org),Win2000对应的下载文件是Win32版本,Win98和Winme对应的下载文件是R298orMe版本,注意别下载错了.如果你使用的是Win2000而下载了Win98orMe的版本,嘿嘿,等

Windows环境下用Apache+PHP+MySql配置web服务器(菜鸟版)

写得很痛苦,虽然文章质量不高,还是希望转载请注明出处,谢谢. 我身边没有人教,全是自己上网找的资料,和在QQ上找的朋友问的. 相信看我这种文章的,情况应该和我一样,由于没有人教,才上网找资料. 直到现在,有一些问题我还没有搞清楚,相信也还会有一大堆问题我还没有发现. 我把我的经验拿出来和大家分享,希望高手能给予指点. 软件版本: Apache 2.0.54 (要安装文件是install的) PHP 5.0.4 (要安装文件是zip的,解压以后一大堆文件的那种,不要install的) MySQL

从零开始搭建论坛(二):Web服务器网关接口

[引自selfboot的博客]在 从零开始搭建论坛(一):Web服务器与Web框架 中我们弄清楚了Web 服务器.Web 应用程序.Web框架的概念.对于 Python 来说,越来越多的 Web 框架面世,在给我们更多选择机会的同时,也限制了我们对于 Web Server 的选择.同样是有着很多 Web 框架的Java,因为有着 servlet API 的存在,任何Java Web框架写的应用程序都可以运行在任意一个 Web Server 上. Python 社区当然也需要这样一套 API,来适

Web服务器Nginx常见的配置选项整理

Google上有丰富的 Nginx 的教程和样本配置文件,但很多时候时候,配置这些是一些技巧,一直对大家很有帮助. Include 文件 不要在您的主 nginx.conf 文件中配置所有的东西,你需要分成几个较小的文件.您的同事会很感激你的.比如我的结构,我定义我的 upstream 的 pool 的为一个文件,和一个文件定义 location 处理服务器上其它的应用. 例子: upstreams.conf upstream cluster1 { fair; server app01:7060

linux中Web服务器Nginx多方位优化策略

Nginx(读音engine x)服务器由于性能优秀稳定.配置简单以及跨平台,被越来越多的公司和个人所采用,现已成为市场份额继Apache之后的第二大Web服务器.各大小网站论坛博客也介绍说明了Nginx从安装到优化的各种配置.不过看了很多这些相关Nginx的文档之后,发现一个比较大的问题,就是这些文档基本也就从两个方面着手,一是修改Nginx的配置文件,二是调整操作系统的相关内核参数:而且文档说明也不够明了,缺乏比较系统级别的优化.本文将从Nginx源码编译安装开始,到修改配置文件,调整系统内

搭建Apache + Mongrel最佳RoR Web服务器平台

当下最佳rails 站点部署应该是 利用Apache 2.2.3的mod_proxy_balancer为Mongrel作负载均衡. 刚上线的站点,Mongrel虽然稍显慢些,但也足够支撑.先把站做好了,再考虑大流量冲击吧. 安装Mongrel的过程(前提已经按好带rubygem的ruby+rails): gem install win32-service #在更新下来的列表里选择最新版本安装 gem install mongrel #选择最新 win32版本 gem install mongre