这两天和同事在瑞豪上面买了一个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秒。。。。




我用nginx架设的vps,WordPress可以用,不过每次要刷新才能到服务器上取最新的数据,不知道哪里有错误,烦请指教~
什么意思呢?每次要刷新才能取最新的数据?
今年也考虑转移到linode vps去,如果有钱的话