在96M内存的VPS上跑高性能的LAMP应用
通常情况下,在一个96M内存的VPS上安装apache2,mysql,php5之后再安装一个wordpress,那么apache在相应三五的连接请求之后,VPS的内存就几乎快要用完了,这时候如果连接请求不断增加,VPS将会内存耗尽,内存耗尽之后,无论有没有swap,CPU的占有率就会很高。我们RasHost VPS已经有很多客户都碰到过这种情况。实践证明,96M内存的VPS使用Apache跑PHP的应用不能支持大的并发。主要原因就是apache+mod_php的内存占用比较高。
为了解决这个问题,我们采用了Nginx+FastCGI PHP+MySQL的方案。Nginx是Web Server的后起之秀,性能比Apache高出不少。实践证明Nginx+FastCGI PHP+MySQL比Apache+PHP要节省资源!
在Linux VPS下配置Nginx+FastCGI PHP+MySQL需要如下几个步骤:
- 配置nginx+fastcgi php+mysql的环境
- 安装wordpress
- 配置nginx URL rewrite用以支持wordpress的永久链接。
对于第一步,请参考我们以前的博客:
对于第二步,安装wordpress跟在apache下一样,不再罗嗦了。安装完wordpress后就可以正常使用了,如果想要启用wordpress的不带问号方式的永久链接,则需要进行第三步。
第三步,我配置的永久链接是这个形式:/index.php/%year%/%monthnum%/%day%/%postname%/ 要达到这种效果需要修改nginx的配置文件/etc/nginx/sites-enabled/default中的相应内容为:
location / {
root /var/www/nginx-default;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /blog/index.php?q=$1 last;
}
}
增加的部分就是这个if语句。这个if语句的意思是:如果碰到一个连接请求($request_filename),而这个连接请求所代表的文件是不存在的(!-e表示不存在,熟悉bash编程的人应该能看出来),那么将改写这个请求的URL,改写方式按照这个rewrite语句进行。
然后重启nginx就可以了,一个96M内存的VPS上的高性能的WordPress就有了!这个配置能跑多少个并发还有待测试!
评论