这两天和同事在瑞豪上面买了一个VPS,现在的博客是放在一个朋友的服务器上,只给我开了FTP权限,还打开了PHP的safe mode,很多东西没法操作,整得相当郁闷。前几天小屁和我说要不要一起买个VPS,突然觉得这个太有必要了,现在对服务器了解的知识多了,不能满足于总是用FTP上传文件。

之前看过几个VPS提供商,都不太理想,要么是windows的,要么是太便宜,信不过。于是想起张宴在他博客上介绍的VPS,貌似效果挺好,于是就先试着用这个,买的是数据中心在美国硅谷,CentOS 5,128M内存,5G硬盘,SSH的速度还可以。于是这两天着手搭环境,上面已经装好PHP、MYSQL,还有lighttpd,本来想用lighttpd,后来配置PHP的时候一直报403卡在这,一怒之下决定装个nginx,后来估计是文件没有设置正确的权限,应该设成755就没问题,不过已经装上nginx了就先用nginx吧。安装过程:

需要pcre库,到ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/上面下载一个比较新的,

tar zxf pcre-7.6.tar.gz,

./configure –prefix=/usr/local/pcre-7.6 && make && make install

还有openssl的库,yum install openssl能搞定。

然后开始安装nginx,

tar zxvf nginx-0.7.61.tar.gz

cd nginx-0.7.61

./configure –prefix=/usr/local/nginx –with-pcre=/usr/local/pcre-7.6  –with-openssl=/usr/lib –with-http_stub_status_module && make && make install

以fastcgi方式在nginx上跑php,需要用到cgi进程管理工具,主要就是lighttpd的spawn-fcgi以及PHP-FPM ,有篇文章介绍这两个工具的优缺点php-fpm文档中文翻译,习惯性用了spawn-fcgi,有空再试试php-fpm。

spawn-fcgi -f /usr/bin/php-cgi -p 9000 -C 5 -P /tmp/spawed.pid ,

小内存所以就开了5个php-cgi进程,监听9000端口。

接着就配置nginx.conf,参考了一些文章:

Nginx的WordPress配置

NginxVirtualHostExample

贴一下自己的虚拟机配置:

server { listen       80; server_name  *.jackywdx.cn  *.wendexin.cn; root   html/myblog; #for wordpress rewrite include wordpress.conf; error_log  logs/jackywdx.error.log; access_log  logs/jackywdx.access.log  main;

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root           html/myblog; fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.php; fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/myblog$fastcgi_script_name; include        fastcgi_params; }

}

worderpss.conf文件:

location / { index  index.php index.html; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php?$1; } }

然后把WP程序放到myblog目录下,导入sql数据,再把wendexin.cn指向我的新IP,68.68.99.134 , 过个几分钟等域名缓存更新了再访问wendexin.cn,成功指向我的新博客。

不过发现访问速度相比我现在的博客,速度慢了不少,完全载入需要6s左右时间,比起现在的访问速度慢了近3倍,于是开始做优化措施。

首先开启nginx的gzip功能,几乎可以把文件压缩到40% ,

gzip  on; gzip_min_length  1000; gzip  on; gzip_min_length  1000; gzip_comp_level 1; gzip_proxied any; gzip_types application/x-javascript image/png image/gif text/css   image/jpeg;

再把图片、CSS、JS等几乎不更新的文件设置过期时间,

location ~ \.(js|css|gif|jpg|jpeg|png|bmp|ico)$ { expires 1d; }

然后重新载入一下配置文件

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

再尝试一下把WP的页面生成静态HTML,

wget http://wendexin.cn/

得到的index.html放入网站根目录,

在firebug下面测试得到的两个结果图如下面(现在的空间上传图片还有点问题,过几天再补上):

效果很明显,优化之前下载的文件长度为229K,需要近6秒,

优化之后的文件长度为91K,压缩了60%,只需要1.86秒。。。。