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
(これでコピーして回らなくて済む)
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辺りに仕込むべきなんだろうけど…。とかメーリングリストで言われてるけど気にしない方向で。
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;とすればいいのですが、 といったことからあんまりやりたくない感じ。