Tag: lighttpd

Lighttpd覆盖设置http头

December 6th, 2009

lighty 1.4 的 setenv 模块是可以操作 http 头的, 但它提供的三个指令实际只是把给定的值附加进去, 如果处理的请求本来有同名的头, 会变成这样:
Host: foo.com, bar.com

X_FORWARD_FOR 这样的头可以如此处理, 但 Host 之类就不是希望的结果了.比如作为代理时, 伺服的主机名和后端伺服的不同, 需要覆盖掉 Host 头.

lighty 1.5 和 nginx 都提供了对应的指令, 1.4 下面得自助. 这里我添加了一个 set-request-header 指令, 顾名思义(set vs add), 会用给定值覆盖设置请求头的值. 响应头的因为我用不到所以没实现, 需要的同学自己折腾吧.

patch 放在 lighty 的论坛上, 但几个月了没人理, 是没人需要鹰语太烂还是要开 issue 才行?

Tags: , , , , , , , ,
Posted in t | 2 Comments »

Lighttpd中mod_compress关于etag的一个bug

March 9th, 2008

这几日一直在摆弄lighttpd,好不容易弄的差不多了,却出现了个诡异的事情:

在1.4.18版本中,使用mod_compress给一些静态文件如js、css启用了gzip压缩之后,无论 static-file.etags 如何设置,etag头部总是会被输出。

static-file.etags 是一个1.4.15新加命令,用于控制是否启用etag。以前在Apache2上我也发现无法通过 FileETag None 关闭etag的情况。以为是协议设计使然,在rfc2616上兜了一圈,无果,八成是个bug了。在lighttpd的trac上开了一个ticket:http://trac.lighttpd.net/trac/ticket/1585

查看了mod_compress的代码,发现里面确实没去 static-file.etags 的设置,直接输出etag。看来mod_compress的作者没有注意到这个新加的命令。

花一个下午加了些hack,在Ubuntu/6.06+lighttpd/1.4.18上测试通过,能够处理 static-file.etags 选项。

patch文件可以在 http://trac.lighttpd.net/trac/attachment/ticket/1585/mod_compress.c.diff?format=raw 得到。

最后说一句:开源很好很强大。

Tags: , , , , ,
Posted in t | 4 Comments »