有关lnmp服务器环境的配置方法,超详细的lnmp服务器配置教程,不要错过。
在高并发连接的情况下,nginx是apache/ target=_blank class=infotextkey>apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。
Nginx 0.8.46 + PHP 5.2.14 (fastcgi) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍
一、什么是nginx?
Nginx是俄罗斯人编写的十分轻量级的http服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过三年了。Igor Sysoev在建立的项目时,使用基于BSD许可。
在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,盛大在线、金山逍遥网等网络游戏网站,豆瓣、人人网、YUPOO相册、金山爱词霸、迅雷在线等新兴Web 2.0网站。
为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。(www.jb200.com 脚本学堂)
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。
Nginx 的官方中文维基:http://wiki.nginx.org/NginxChs
二、系统环境
系统平台:RHEL 5.4(系统要求:Linux 2.6+ 内核)
Nginx版本:nginx/1.0.15
mysql 版本:5.1.35-log Source distribution
Php版本:php-5.2.10
三、安装准备
1、获取相关开源程序并安装
redhat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包RedHat可以直接利用centos的RPM包安装。
可以用rpm安装以下包,如有关联包,安装时一起安装。
gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
以上包如果安装了的话,不需要再安装了。
2、RPM包搜索网站
http://rpm.pbone.net/
http://www.rpmfind.net/
http://code.google.com/p/zed-lnmp/
3、nginx软件包准备
Nginx所需要的软件包可以从下面位置获取,也可以记住名字在google中搜索。
nginx-0.7.61.tar.gz
php-5.2.10.tar.gz
php-5.2.10-fpm-0.5.11.diff.gz
mysql-5.1.35.tar.gz
libiconv-1.13.tar.gz
libmcrypt-2.5.8.tar.gz
mcrypt-2.6.8.tar.gz
memcache-2.2.5.tgz
mhash-0.9.9.9.tar.gz
pcre-7.9.tar.gz
eaccelerator-0.9.5.3.tar.bz2
PDO_MYSQL-1.0.2.tgz
ImageMagick.tar.gz
imagick-2.2.2.tgz
四、安装PHP 5.2.10(FastCGI模式)
编译安装PHP 5.2.10所需的支持库:
1.安装libiconv
对文本进行编码间的转换,用它来处理中文各种编码之间的转换。
2.安装libmcrypt 实现加密功能的库。
3. 安装mhash(哈稀函数库)
4. 安装mcrypt
注:DG库所需要安装包,可以采用rpm包来安装,减少时间,由于php已经集成GD库,但前提支持包应事先安装,如zlib,png,jpeg,freetype等。如果完全想采用tar包安装的话,请参考lamp相关内容。
五、编译安装MySQL
建立mysql组,建立mysql用户并且加入到mysql组中
注:在配置过程中,整体的配置思路从上往下,其中的一些功能可以用在实际的配置过程中,主要用于测试环节中。
Mysql的优化部分这里没有给出,需要参考其它资料。