CX::P::E::FastCGI::LighttpdをCPANに上げた

もう1年以上前からになりますが、
lighttpdでファイルが存在しない場合にFastCGI-Catalystへ飛ばす設定とプラグイン - ヒルズで働く@robarioの技ログ
このようなプラグインを使っていました。

この度(主に自分都合により)このプラグインCPANに0.0.1としてアップしました。
CatalystX::Plugin::Engine::FastCGI::Lighttpd - Fix up for FastCGI on Lighttpd. - metacpan.org
(これでコピーして回らなくて済む)

すっかり書くのを忘れてましたが、CodeReposに上げてあります。
http://coderepos.org/share/browser/lang/perl/CatalystX-Plugin-Engine-FastCGI-Lighttpd/trunk


そして先ほどアップした0.0.2では、
Lighttpd + mod_proxy で Catalystに飛ばす時 - ヒルズで働く@robarioの技ログ
の記事中

  setenv.add-request-header = ("X-Forwarded-Host" => "backend.example.com")

のようにlighttpd側で処理していたものを、プラグイン側でHTTP_X_FORWARDED_HOSTにHTTP_X_HOSTをセットしてしまうようにしてみました。(lighttpd側でX-Forwarded-Hostをセットしなくても良い)



あー。当初の目的と既に違っちゃっててdescriptionがおかしく見えるな。まあいいか。
Catalyst::Engine辺りに仕込むべきなんだろうけど…。とかメーリングリストで言われてるけど気にしない方向で。

ちなみにPluginを使わずに書くには、
package Catalyst::Engine::FastCGI::Lighttpd;
use parent qw(Catalyst::Engine::FastCGI);
sub prepare_path {
    my ( $self, $c, @arguments ) = @_;

    my $env_ref = $self->env || \%ENV;

    ( $env_ref->{PATH_INFO}, $env_ref->{QUERY_STRING} ) =
      ( split /\?/msx, $env_ref->{REQUEST_URI}, 2 );

    $env_ref->{HTTP_X_FORWARDED_HOST} ||= $env_ref->{HTTP_X_HOST};

    return $self->SUPER::prepare_path($c, @arguments);
}
1;
とすればいいのですが、 といったことからあんまりやりたくない感じ。