Mojolicious::Liteのアプリをnginxのリバースプロキシ+サブディレクトリで動かす。

favicoとlistとupicoの実行環境をfastcgiからhypnotoadに移行しました。(favは移行するメリットがないのでfastcgiのままです)
明らかにTwitterの認証画面に移行するまでの処理が早くなったのですが、fastcgi環境だと何がボトルネックになってるのかまったくわからないので気が向いた時に調べようと思います。

favico以外のアプリはサブディレクトリで運用する必要があったので、サブディレクトリで動くようにnginxのconfとアプリケーションを書き直しました。
MojoliciousのWikiにApacheの設定方法があったので、それを参考にしています。

nginxのconf

upstream myapp {
        server 127.0.0.1:ポート番号;
}
(中略)
location /sub1 {
	proxy_pass http://myapp/sub1;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_set_header Host $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Host $host;
}

アプリケーションの変更

app->hook('before_dispatch' => sub {
	my $self = shift;
	if ($self->req->headers->header('X-Forwarded-Host')) {
	  #Proxy Path setting
	  my $path = shift @{$self->req->url->path->parts};
	  push @{$self->req->url->base->path->parts}, $path;
	}
});

どうでもいいんですが、nginxって日本語入力オンのまま検索しようとすると「ンギモッヂイイ」ってサジェストされるのはなんとかしてほしいと思います。(迫真)
ただ、Mojolicious使うきっかけが「喪女wwwwwwwwリシャスwwwwwwww」でツボにヒットしたからだったので何とも言えません。

コメントを残す