June 2011 posts

Jun 25, 2011

Perlbal の web server に Apache の mod_expires と同じ代替期間指定構文ってやつで Expires を指定できるプラグイン、Perlball::Plugin::Expires というのを書いた。

使い方はこんなん。

LOAD Expires
CREATE SERVICE web
    SET role    = web_server
    SET listen  = 127.0.0.1:8000
    SET docroot = /path/to/docs
    SET plugins = Expires
    Expires default   = access plus 1 day 12 hours
    Expires image/gif = access plus 10 years
ENABLE web

Content-Type 別に指定できるのも同じ。ExpiresDefault 的なのは default を使う。mod_expires には A<時間>, M<時間> という形式もあるけどそっちはとりあえず対応してない(使ったことないから...)。

Perlbal には汎用的にレスポンスヘッダを追加できる Perlbal::Plugin::Addheader というのがあるのだけれど、Expires を指定するのに、

ADDHEADER static Expires [% {use HTTP::Date;HTTP::Date::time2str(time() + 2592000)} %]

こんなふうに書かないといけなくてあんまりだなぁと思ったので書いてみた次第。

どうぞご利用ください。