Nginx与奶瓶腿(Dabr)

上个月买了台在美帝的超廉价vps,基本上跑跑openvpn什么的,一个月下来流量一个百分点都没过,于是试试架点别的服务,先试试奶瓶腿。

VPS的内存就是钱。虽然这台VPS有384M内存,不算小,但apache什么的内存大户还是不考虑了,直接上nginx+fastcgi。

此前有做过这个组合的笔记《简单配置nginx+fastcgi后端的WordPress服务器》,不做博客的话mysql就省掉了。

但是启动php-cgi是个问题,还好有人写了不错的启动脚本/etc/init.d/php-fastcgiNginx, PHP and a PHP FastCGI daemon init script。而这篇How to set up nginx with PHP on Ubuntu的脚本稍微简化一点,而且是用Unix Socket来绑定nginx跟fastcgi的通讯。这样就免除了lo interface的依赖。

假设奶瓶Dabr是没什么难度的事情,奶瓶腿的话,我从项目的SVN checkout出源码后,下载 user_oauth.php并改名覆盖原来的common/user.php,以支持后台自动oauth登录Twitter;然后配置到nginx的虚拟主机目录下,基本就结了。

当然兽兽Showfom的Dabr教程里面提到了使用nginx的伪静态改写规则,这必须的(跟用wordpress一样):

1
2
3
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php?q=$1 last;
    }

最后遇到的问题是,访问奶瓶腿的Setting,保存后502错误,查看error.log看到报的是:

 
24219#0: *40 upstream sent too big header while reading response header from upstream

直接Google找到答案,就是调大nginx的fastcgi缓冲区。

1
2
3
4
5
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;

把这段加入到虚拟主机的配置下面,完了。没什么营养。

Update: 2011-02-28

2010版的奶瓶里面改用了itap作为oauth代理,但是itap对改写的规则跟奶瓶不兼容,如果使用nginx配置,需要配置两个Location域:

server {
    listen   80; ## listen for ipv4
    server_name     your.server.com;
    access_log /var/log/nginx/netputtweet.access.log;
    error_log /var/log/nginx/netputtweet.error.log;
    root    /var/www/netputweets/;
    index   index.html index.htm index.php;
    location / {
            if (!-e $request_filename) {
                    rewrite ^/(.*)$ /index.php?q=$1 last;
            }
    }
    location /oauthproxy/ {
            if (!-e $request_filename) {
                    rewrite . /oauthproxy/index.php last;
            }
    }
    location ~ \.php$ {
          include        fastcgi_params;
          fastcgi_pass   127.0.0.1:9000;
          fastcgi_index  index.php;
          #fastcgi_param  HTTPS on; #if you use HTTPS
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
}
文章分类 Blogger Tech, Unix/Linux
2 comments on “Nginx与奶瓶腿(Dabr)
  1. icyomik说道:

    不知道有没有营养,因为看不懂。
    哈哈,终于看到你更新啦~~

  2. BOYPT说道:

    @icyomik: 真的没什么,只是这些东西有点琐碎,稍做记录,特别里面的链接是比较有价值的资料,以后需要就不用重新搜了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*