沈二铺子
关注互联网行业评论, 用户需求, 用户体验, LAMP, CSS+XHTML前端技术
关注互联网行业评论, 用户需求, 用户体验, LAMP, CSS+XHTML前端技术
十 18th
昨天发布了多人博客站点——博出位(bochuwei.com)。其中每个博客的附件地址,都是类似于这样的:http://shen2.cn/files/2010/10/xxx.jpg。
这样的附件地址,好处在于隐藏了实际路径中,wp-content/blogs.dir/?/的路径信息,缺点是原本直接通过nginx就能够返回文件,现在必须通过php。
更要命的是,php的readfile()函数效率不高,对于大文件来说,在返回结果之前,由php读取文件的全部内容,显然是没有必要的。
在ms-files.php的代码中,我找到了这样一段代码:
if ( WPMU_ACCEL_REDIRECT ) {
header( 'X-Accel-Redirect: ' . str_replace( WP_CONTENT_DIR, '', $file ) );
exit;
} elseif ( WPMU_SENDFILE ) {
header( 'X-Sendfile: ' . $file );
exit;
}
于是引发了我无限遐想。这个传说中X-Accel-Redirect是不是能够实现高速的文件重定向呢?
google了之后发现果然如此,可惜找不到任何的相关文档,仅有的一篇中文博客(http://tremblefrog.org/blog/2009/04/03/a_wpmu_hack_to_substitute_php_for_nginx_processing_static_files/),写得也不是很详细。
摸索了一下,原来是nginx提供了一个高级特性,叫XSendfile,用来读取header信息中的X-Accel-Redirect值,将X-Accel-Redirect所指定的文件内容,作为输出。
这样一来,php就不需要读取文件的正文,只需要输出X-Accel-Redirect值,就可以让nginx负责静态文件的传输了。
1. 在nginx的server配置中增加设置:
rewrite ^/files/(.+) /wp-includes/ms-files.php?file=$1;
location /blogs.dir/ {
internal;
root /wordpress/wp-content;
expires 30d;
}
2.在wp-config.php文件的尾部,增加:
define( 'WPMU_ACCEL_REDIRECT', true);
重启nginx之后,就生效了,是不是很酷?
十 17th
博出位(bochuwei.com)是2010年9月,live space宣布即将关闭之后,我(沈振宇)为了帮助我的朋友们托管自己的博客而建立的基于wordpress多人博客网站。
博出位由我自己维护,仅提供给我的朋友们免费使用,不向公众开放。在我可预见的将来都将稳定运行下去,即使有一天我不能再维护这个网站,我也会将数据交回。
给我发邮件(zhenyupku AT gmail.com),说明你的博客想使用的域名和你的用户名,我会给你回复邮件开通博客。当然,前提是你认识我,并且我认识你。
博出位的维护费用由我自己支付。博出位是纯粹的个人网站,没有商业模式,也不打算挣钱。博出位和图虫没有关系。
九 28th
Powered by Twitter Tools
九 5th
看php的ppt()的时候无意中发现的命令,可以通过ubuntu安装
http://talks.php.net/show/digg/
同时发现的工具还有strace,改天试用一下
九 4th
域名由于更换注册商,博客暂停了两个半月。
虽然两个月之间我仍然通过修改/etc/hosts的方法来写博客,但毕竟很不勤快。
如今终于恢复正常。沈二铺子重新开张。相关twitter也一并重新启用,敬请关注。
九 3rd
shen2.cn两个星期前,我就注回来了,可是似乎正好遇上CNNIC网络调整,明明我已经被过案了,但还是挂着一个serverHold。
严重鄙视CNNIC。域名备案、不备案不解析的制度,统统玩儿蛋去吧。
九 3rd
前两天我手贱,升级了一下ubuntu的软件包,结果显卡驱动出问题,挂掉了。可怜我NB的GTX260+,愣是不能用,进不了桌面。
提示信息是ABI驱动云云,估计是新的驱动不是在某某开源协议框架下的,不能随便用。必须加ignoreABI参数。可是提示信息愣是没说在哪里加ignoreABI参数。
研究了半天,发现用startx — -ignoreABI可以强行启动。
可是不能让我每次启动的时候都手敲这个命令啊。总有配置文件可以设置吧。
可算是被我找到了,在/etc/X11/xorg.conf文件中,加上下面这一段即可:
Section "ServerFlags"
Option "IgnoreABI" "1"
EndSection
八 24th
Powered by Twitter Tools