日期:2014-05-16  浏览次数:20961 次

Nginx+Apache搭建
前言:谈到Linux下的web生产环境,大家就会想到apache这个开源服务器软件.apache可以整合大多数应用,比如jsp,php,cgi,python等等,但是apache过于臃肿以及对静态文件响应过于缓慢让很多使用者感到头疼.而nginx作为新崛起的服务器软件,在很多方面超出apache,定位也很明确:高性能的 HTTP 和反向代理服务器.因而,本篇主要讲的是nginx作为前端,apache作为后端的应用环境搭建过程.

为什么不使用nginx+php(fastcgi)作为生产环境?我提出我的看法.

   1. php(fastcgi)不够稳定,经常出现502错误,生成相对复杂的页面没有优势,反而会使php-cgi进程变为僵尸进程.
   2. 安全性,多用户多站点权限问题.php(fastcgi)在应对多用户多站点往往捉襟见肘,不易于实施.
   3. 整合其他开发语言,apache表现得游刃有余.资源利用恰到好处.

为什么采用nginx做前端,apache作为后端的方案?nginx在处理静态内容上较apache是几倍或几十倍的差异,因而放在前面过滤静态内容是最为恰当的.同时nginx也是一个负载均衡器,低资源消耗,高性能转发是它的特点.经过nginx在前面的过滤,后端的apache需要处理的内容相对就比较少了.只需负责处理动态内容就可以了.在性能与稳定性的权衡下,使用nginx+apache搭配会让它们在各自擅长的领域展现自身的价值.

本教程以CentOS 5.4 32bit为环境.其他Linux发行版本暂未测试.nginx,php,apache,mysql,pureftpd均为最新稳定版.

获取操作系统源更新.

    yum update

    yum -y install gcc gcc-c++ bison patch unzip mlocate flex wget automake autoconf gd cpp gettext readline-devel 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 libidn libidn-devel openldap openldap-devel openldap-clients openldap-servers nss_ldap expat-devel libtool libtool-ltdl-devel

如果系统默认安装了apache,请先卸载.执行:

    yum remove httpd

下载最新稳定版的程序源码包,以下都是到官方网站或sourceforge下载的源码包.

    cd /usr/local/src

    wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz/from/http://mysql.he.net/

    wget http://www.apache.org/dist/httpd/httpd-2.2.15.tar.gz

    wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

    wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download

    wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download

    wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download

    wget http://www.php.net/get/php-5.2.13.tar.gz/from/this/mirror

    wget http://php-fpm.org/downloads/php-5.2.13-fpm-0.5.13.diff.gz

    wget http://www.lancs.ac.uk/~steveb/patches/php-mail-header-patch/php5-mail-header.patch

    wget http://pecl.php.net/get/memcache-2.2.5.tgz

    wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2

    wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz

    wget http://pecl.php.net/get/imagick-2.3.0.tgz

    wget http://download.suhosin.org/suhosin-0.9.29.tgz

    wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

    wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

    wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz

    wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz

    wget http://sourceforge.net/projects/pcre/files/pcre/8.01/pcre-8.01.tar.gz/download

    wget http://nginx.org/download/nginx-0.7.65.tar.gz

    wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.28.tar.gz

一.安装Mysql.安装最新稳定版5.1.45版本,并没有采用最新开发版.

    cd /usr/local/src

    tar -zxf mysql-5.1.45.tar.gz

    cd mysq