更换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资源占用上小很多。
猜你喜欢
- 2.6. 资源记录域名标记结点,每个结点都有资源信息集,些集可以为空。资源信息集和由分离资源集(RR)的特殊名字相关联。在集中的RR顺序没有
- 又是一个黎明的到来,我已经数不清有多少个这样的黎明是在我坐在电脑面前来临的。仔细一想,我进入站长这圈子已经有1年多了。 
- 1. 为什么选择Godaddy呵,本来选择的是Lunerpages, 结果下了订单人民币付款总不成功,就转向了Godaddy. 当然Goda
- 函数库分为静态库和动态库两种。创建Linux静态库和Linux动态库和使用它们在这里将以举例的形式详述一下。静态库在程序编译时会被连接到目标
- 近日南方都市报的一则题为《网店变形记:握手线下士多》的关于广州“聚宝盆”B2M运营模式的报道,引起电
- 阅读上一篇:一个完美网站的101项指标.第四部分.设计网站的安全非常重要,如果您的网站中存在需要授权才能访问的内容,保护好这些内容是您的责任
- 北京时间11月18日消息,国外著名科技博客TechCrunch发文称,据消息人士透露,MySpace正在洽谈收购在线音乐播放网站iMeem,
- 在使用CMS套站时进行栏目结构规划时常遇到这样一种情况:每个栏目下想再细分一些类别,如果以栏目的形式添加,很多栏目下都会有这些重复的类别,这
- 百度与站长的斗争个人站长对于百度的SEO,方法有无穷种,单纯靠技术,百度一点办法都没有。于是百度增加了人工干预,打击了不少网站,作弊的,非作
- 拒绝游泳的鱼:各位安徽及各地的互联网朋友们,大家下午好。老k一直在做非常公益的这些本地站长的交流,所以鱼特别支持来和大家聊一下。其实很多的技
- DNS软件是黑客热衷攻击的目标,它可能带来安全问题。这里是一些保护DNS服务器最有效的方法。1.使用DNS转发器DNS转发器是为其他DNS服
- 作为一种资源的组织和表达机制,Web已成为Internet最主要的信息传送媒介。因此Web的性能已经成为判断一个网站成功与否的一个重要评估标
- 11月26日上午消息,据多玩网总裁李学凌在网上公开透露,多玩网遭对手iSpeak恶意攻击一案近日在上海一审判决。iSpeak运营方上海勤和公
- cisvc.exe>ContentIndex--It''sthecontentindexingserviceforI索
- 时下广告联盟遍地都是,大的有GOOGLE BAIDU YAHOO等 小的就不计其数了,现在又推出了重量级的联盟就是 阿里妈妈。面对如此繁多的
- 一、软件的准备A.检查你的系统是否已安装了以下软件1.pam2.pam-devel3.mysql4.mysql-servel5.mysql-
- 北京时间11月6日消息,据国外媒体报道,Ancestry.con本周四在纳斯达克上市,交易代码为“ACOM&rd
- phpcms实现站内搜索自动对应频道的代码:<form method="get"
- 我是一名老站长,但是我不是年龄老,而是我接触这一行已经快7个年头。本身也是可以和HAO123,9FLASH平起平坐的。可是由于自己的不坚定,
- DEDECMS鼠标 hover 显示全部标题的简便方法因网页设计的原因,在某些地方我们需要截取文章的部分标题,但这样无论对SEO