Linode VPS with Nginx的进一步优化
星期三, 十二月 2nd, 2009
-
清理系统服务
可以关闭不必要的系统服务,linux下常用chkconfig,在ubuntu系统上最常用sysv-rc-conf,界面更友好使用更方便,直接通过源安装即可运行。
sudo apt-get install sysv-rc-conf sudo sysv-rc-conf
通过软件可以发现,Linode提供的系统已经关闭了很多不必要的服务,但是系统自带了apache,直接取消选择关闭即可。
-
nginx过期设置
在nginx中,可以对部分类型资源配置过期时间,以利用客户端缓存,降低服务器端负载,某些媒体资源可以禁用log。
在对应的nginx配置文件youdomain.com中添加
location ~* ^.+\.(gif|jpg|jpeg|png|bmp|ico|swf)$ { root /home/myname/wwwroot/yourdomain.com; access_log off; expires 7d; } location ~* ^.+\.(js|css)$ { root /home/myname/wwwroot/yourdomain.com; expires 24h; } -
wordpress静态化
cos-html-cache是WP的静态化插件,他可以将WP通过UrlRewrite优化过的Url链接彻底静态化。你只需要在WP后台设置固定链接为某种静态文件类似的形式(例如/archives/%post_id%.html),你就可以使用该插件生成对应的静态文件,从此用户将直接访问此静态文件,而不必再通过php解释,极大提高运行效率。
具体操作上面链接描述很详细,无需赘述。
不过我在启用此插件后,发现能正常生成网站根目录下index.html,但无法生成/archives/%post_id%.html。我写了一个php脚本放在网站根目录下测试,也无法在/archives目录下生成文件,提示找不到该目录。在cos-html-cache源文件中可以找到,生成html文件的脚本,路径信息是通过$_SERVER["DOCUMENT_ROOT"]获取的,但是尝试打印该值发现无值。最后我发现必须在Nginx站点配置文件中在php-fast-cgi的配置项里增加网站的root路径如下
location / { root /home/myname/wwwroot/yourdomain.com; index index.html index.htm index.php; if (-f $request_filename) { break; } if (-d $request_filename) { break; } rewrite ^(.+)$ /index.php?q=$1 last; } location ~ \.php$ { #必须定义root ----------------------------------------- root /home/myname/wwwroot/yourdomain.com; #------------------------------------------------------ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/myname/wwwroot/yourdomain.com$fastcgi_script_name; include /usr/local/nginx/conf/fastcgi_params; }如果不添加该root信息,在php中则无法正确获取$_SERVER["DOCUMENT_ROOT"]参数,会导致路径定位错误。不过按照一般逻辑,这个应该是继承前面的root设置,不必重复定义。也许是因为fastcgi是从nginx转向到另一个新的进程的缘故,所以需要具体定义参数传递。不过nginx应该自动获取该值,避免重复手工操作。
十二月 21st, 2009 at 21:03
感谢博主的分享,你这篇文章讨论的是index.php的问题,我目前遇到的问题是win+iis环境下安装了cos-html-cache,但是无法生成/archives/%post_id%.html文件;我刚开始学习WordPress,不知博主是否可以帮助?等待您的来信,谢谢!
十二月 23rd, 2009 at 23:09
windows下估计是目录权限问题,你需要修改指定目录的权限设置。另外你好像没有留邮箱地址,所以我只能这里回复了……
十二月 24th, 2009 at 17:15
博主你好。 我的主机采用nginx搭建。版本为 0.8.30
博客程序是WordPress。 启用了cos-html-chace。
nginx已经做规则。现在的问题是。 cos-html-chace只生成了首页。
文章的静态化文件不生成。
—
博主啊。非常感谢你。我就是这个问题。太感谢了。