[Moscow.pm] nginx + Catalyst + PSGI
Иван Соколов
vaneska.ru на gmail.com
Пт Сен 30 00:21:42 PDT 2011
Добрый день!
Схема такая
frontend - nginx
backend - plackup -s Starman app.psgi --port 3000
Решить проблему с X-Real-IP удалость очень просто с помощью
Plack::Middleware::ReverseProxy
Но есть другая проблема.
Т.к. передается http запрос на backend, $c->request->base выдает схему http
и некоторые модули типа Catalyst::Controller::FormBuilder в form
action="" кладут http url.
Временно решил это так:
builder {
enable_if { $_[0]->{REMOTE_ADDR} eq '127.0.0.1' }
"Plack::Middleware::ReverseProxy";
enable sub {
my $app = shift;
sub {
my $env = shift;
$env->{'psgi.url_scheme'} = 'https' if
$env->{HTTP_X_IS_SECURE} || $env->{HTTPS};
$app->($env);
}
};
$app;
};
Может есть какое-то более правильное решение?
--
С уважением,
Иван
Подробная информация о списке рассылки Moscow-pm