服务器技术

 首页 > 服务器技术 > apache > 更换apache到nginx的操作过程全记录|nginx-Apache教程

更换apache到nginx的操作过程全记录|nginx-Apache教程

分享到:
【字体:
导读:
          make,客户有一个跑了3年多的组装pc服务器, 1.5G内存,p4 2.8G cpu,apache2.28+mod_php+mysql。95%的页面是静态页,每天大约有各类http请求500-1000万个(包括 html,js,css,jpg,gif,php等)启用了...

客户有一个跑了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 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)
  photoshop/ target=_blank class=infotextkey>ps auxww | grep nginx | grep master | awk '{print }' | 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资源占用上小很多。
《更换apache到nginx的操作过程全记录》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Server/Apache/17886.html
分享到:
用SSL技术保护Apache服务器通信|服务器-A...
   由于apache在全球的应用范围相当广泛,因此其安全性就显得举足轻重,本文将对在linux环境中使用SSL技术保护Apache服务器通信的方法进行详细介绍。         Apache是世界排名第一的Web服务器,世界上60%以上的Web服务器是使用的Apache。Apache是一个免费的软件,用户可以免费从Apache的官方网站下载。任何人都...
Linux下Apache安装/增加mod_rewrite模块|...
如果你的服务器apache还没有安装,那很简单,在编译apache时将mod_rewrite模块编译进去就可以,相关文档可以在http://man.chinaunix.net/newsoft …… ew/mod/mod_rewrite. html中找到。 如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache中进行加载,下面我们就介绍这个方法。     以Fedora操作...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……