笔者作此实验的时候,查阅过网络上的相关文档,好多人都是在同一台服务器上实现的,因此废了不少功夫,但是考虑到生产环境,就想分开实现,本文主要介绍Nginx+php-fpm在两台服务器实现,因为笔者做的时候,卡了很久,所以就想拿出来分享下,虽然没什么技术性,但是发现了自己对nginx结合fpm理解的疏漏,记下来,以此为鉴。 首先我们来介绍下Nginx是什么吧; Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站已经开始使用Nginx作为Web应用服务器。 Nginx VS Apache Nginx主要是适用于高并发和高效的负载均衡,轻量级web 服务器,相比Apache,nginx的众多模块(最新的开发版本已经支持动态加载)不够完善,对脚本的支持力度不高。 Apache由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,支持动态加载模块,但是不适合高并发的环境下。 Nginx的轻量级:采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。 接着介绍下PHP-fpm是什么; PHP-FPM是一个PHPFastCGI管理器,是只用于PHP的。 PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中,必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用 #huakai#:2011年,小米手机风靡大江南北,风骚了好久,但是让小米追求者不快的是,每次在抢购小米的时候,总是提示服务器繁忙,笔者参与多几次抢购活动,深受其害,不知道小米的网站采用的是什么服务器软件呢。 讲完这么多,你肯定马上想看看Nginx究竟为何物吧,那我废话不再说了,开始部署服务器吧!!! 1,准备开发库以及对文中所涉及软件的介绍。 1.1 :安装“Development Libraries”“Development Tools””X Software Development” 包组以及pcre-devel包(可以使用系统自带的yum源安装) 1.2 : 需要的软件 nginx-1.2.3.tar.gz php-5.4.8.tar.gz mysql-5.0.77-4.el5_6.6 mysql-server-5.0.77-4.el5_6.6 mysql-devel-5.0.77-4.el5_6.6 libmcrypt-2.5.7-5.el5.i386.rpm mcrypt-2.6.8-1.el5.i386.rpm mhash-devel-0.9.2-6.el5.i386.rpm mhash-0.9.2-6.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm(笔者采用rhel5.8系统,yum源为光盘,所有包组以及mysql均采用系统自带的rpm包,) 1.3 :关闭selinux 具体软件版本的依赖型,各位可以参照php或者nginx的官方网站,笔者就不在此班门弄斧了。 1.4: Nginx Server: IP 172.16.8.1 PHP-FPM Server:IP 172.16.8.2 ,同时安装了mysql(这里为了减轻笔者计算机负荷,就将mysql安装在此服务器)
2.配置Nginx服务器(以上开发库的安装方式不再给出过程)
2.1:编译安装 IP:172.16.8.1 #groupadd -r nginx #useradd -g nginx -r nginx #tar xf nginx-1.2.3.tar.gz # cd nginx-1.2.3
#./configure \ #make #make install
2.2 为nginx提供SysV init脚本
#!/bin/sh
# Source function library.
# Source networking configuration.
# Check that networking is up.
nginx="/usr/sbin/nginx" NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx
make_dirs() {
start() {
stop() {
restart() {
reload() {
force_reload() {
configtest() {
rh_status() {
rh_status_q() {
case "$1" in 2.3 为此脚本赋予执行权限: #chmod +x /etc/rc.d/init.d/nginx 2.4添加至服务管理列表,并设置开机启动
# chkconfig --add nginx 2.5启动服务测试: #service nginx start
#huakai# 紫色字体为改动或添加,其他均为默认设置,此方法,全局生效! |