nginx+fcgiwrap環境に移行した時にMojolicious::Liteアプリのルーティング先( http://hoge.com/fuga.pl/route )が404なのが解消できなくてはまりました。
confファイルでlocation ~ .pl$を指定していたのですが、よく考えたら末尾が.plで終わらない限りperlのスクリプトとして処理されないので、location ~ .pl($|/) で解消しました。
こんな間抜けな理由ではまるのどうにかしたいです。
もともと共用のレンタルサーバでCGIで動かしてたスクリプトをそのまま移行したのと、ちょっと色々あってmorboでもhypnotoadでもPSGIでもなくFastCGIで動かしています。
ほんとはhypnotoadで動かしたいんですが…。
追記(index.plで受ける場合)
#中略
location / {
root /path_to_index/;
if (!-f $request_filename) {
rewrite ^/$ /index.pl last;
rewrite ^(.*)$ /index.pl$1 last;
}
}
location ~ ^(.+.pl)(.*)$ {
#中略
fastcgi_index index.pl;
fastcgi_param SCRIPT_FILENAME /path_to_script/index.pl;
}
#中略
もっとスマートな方法があるんだろうなと思いつつ、これしか思いつかなかったので。