Apache выполняет прокси для приложения PSGI с помощью HTTP :: Server :: PSGI.
файл apache conf:
<Proxy balancer://my_cluster>
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
BalancerMember http://127.0.0.1:3003
</Proxy>
ProxyPreserveHost On
ProxyPass /dispatch/ balancer://my_cluster/
URL-адрес будет: http://foo.com/dispatch/main
после вызова $ self-> query-> self_url () я получаю: http://foo.com/main
/ отправка вырезается каждый раз. Я не уверен, какой слой вырезает и как вернуть обратно.
Сначала мне нужно было отключить ProxyPreserveHost (по умолчанию)
Измените точку входа для приложения PSGI.
builder {
return $app;
}
становится:
builder {
mount "/dispatch" => $app
}
измените ProxyPass на:
ProxyPass /dispatch/ balancer://my_cluster/dispatch/
Теперь url_self () работает должным образом.