更换apache到nginx的操作过程全记录

作者:Nginx 来源:CHINAZ 时间:2008-07-30 18:05:00 



客户有一个跑了3年多的组装pc服务器, 1.5G内存,p4 2.8G cpu,apache2.28+mod_php+mysql。95%的页面是静态页,每天大约有各类http请求500-1000万个(包括html,js,css,jpg,gif,php等)   启用了gzip压缩,大部分时间负载在1.0以下,但是偶尔会暴涨,导致死机,严重情况一天down机N次。一直没找到原因,可能是服务器不行了。 正好想测试一下nginx + php-fastcgi 性能,也许能行。 说干就干,看了一些nginx文档,开始实施了。过程如下:

安装php最新版,直接用自带的fastcgi模式:
./configure --prefix=/usr/local/php526cgi --with-mysql=/usr/local/mysql --with-zlib=/usr/local/src/zlib --with-gd --with-freetype-dir=/usr/local/src/freetype --with-jpeg-dir=/usr/local/src/jpeg/lib --enable-gd-native-ttf --with-png-dir=/usr/local/src/libpng --enable-exif --enable-ftp --with-curl --enable-mbstring=all --enable-force-cgi-redirect --enable-zip --enable-zend-multibyte  --enable-fastcgi

make
make install

由于已经是有php环境了,zlib等组件早已安装好。我只需要--enable-fastcgi就ok了。 php搞定!

mysql不动它,继续用。

执行php-fastcgi:

我们可以利用Lighttpd的spawn-fcgi来控制cgi进程的运行。获得spawn-fcgi的方法如下:

wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2 #获取Lighttpd的源码包
tar -xvjf lighttpd-1.4.18.tar.bz2
cd lighttpd-1.4.18
./configure --prefix=/usr/local/lighttpd
make
cp src/spawn-fcgi /usr/local/nginx/bin/spawn-fcgi #取出spawn-fcgi的程序
下面我们就可以使用 spawn-fcgi 来控制php-cgi的FastCGI进程了

/usr/local/nginx/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 32 -u nobody -g nobody -f /usr/local/php526cgi/bin/php-cgi

好了,搞定。继续。


安装nginx:
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module

make
make install

strip /usr/local/nginx/sbin/nginx 可以压缩执行文件,节约内存

制作nginx启动脚本:
vi /usr/local/nginx/bin/mynginx

#!/bin/bash
case $1 in
start)
        /usr/local/nginx/sbin/nginx
;;
stop)
        killall -9 nginx
;;
test)
        /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
;;
restart)
        ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
;;
show)
        ps -aux|grep nginx
;;
esac

用法一看就知道了。

设置nginx的配置文件,这个网上一大把,不重复了。有需要的可以上 http://nginx.myhbcms.cn/ 找找

将apache的httpd.conf里面的虚拟主机配置转到nginx里去,由于有几十个虚拟主机,这个花了我好几个小时的时间。

额外插曲:由于使用了apache的mod_vhosts虚拟主机模块,nginx没找到对应的功能模块,不得以,只好继续在8081端口开着apache,用nginx的proxy来反向代理。举例:
        server {
                listen 80;
                server_name *.hbcms.com *.myhbcms.cn;

                location / {
                    proxy_pass http://127.0.0.1:8081/;  // 这是apache运行的端口
                    proxy_set_header   Host             $host;
                    proxy_set_header   X-Real-IP        $remote_addr;
                    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

                }
        }

大致过程就是这样了,希望对你有所帮助。 至于这个服务器性能会如何,运行一段时间才知道。理论上来说nginx应该会比apache资源占用上小很多。

标签:
0
投稿

猜你喜欢

  • 在淘宝搜索排前位之密招

    2009-11-05 12:48:00
  • Linux下Sendmail服务器转发功能的讲解

    2010-03-12 19:13:00
  • SEO的博客链接策略 参与主题并分享观点

    2008-12-30 09:13:00
  • 大专生建网站当起网上“破烂王”

    2007-10-13 10:42:00
  • 实现文件双向传输 搭建FTP服务器

    2012-02-25 19:58:43
  • 使用参数化查询防止SQL注入漏洞

    2010-06-26 12:56:00
  • 黑客盗窃淘宝的网店主资金获刑

    2008-02-01 13:26:00
  • Linux 服务器的安全隐患以及防范对策

    2009-09-09 09:12:00
  • 正确的搜索引擎优化技术

    2009-03-11 10:42:00
  • 步骤详解:如何去建立一个英文网站的站群

    2009-01-24 21:17:00
  • 完美听歌享受 酷我音乐盒全面支持 win 7

    2009-11-07 11:05:00
  • 专访SEOMoz公司创始人Rand Fishkin

    2007-10-14 09:51:00
  • 搜索引擎优化中12个黄金规则

    2009-03-25 11:06:00
  • 网游业高薪? 中国游戏行业五大愚人新闻

    2008-09-25 17:40:00
  • 在产品环境中使用32位Exchange 2007

    2010-03-13 19:05:00
  • 个人网站选购虚拟主机的五大原则/技巧

    2010-03-21 16:16:00
  • 国外网络赚钱之支票 美元外汇等基础知识介绍

    2009-03-30 14:10:00
  • 当当网坚持10年终盈利 线上零售帝国模式凸显

    2009-11-27 07:18:00
  • 谷歌退出中国是一场没有胜利者的战争

    2010-03-24 12:24:00
  • 守住你的网站 防御DDoS攻击实用指南

    2010-10-20 20:04:00
  • asp之家 网站运营 m.aspxhome.com