Назад | Перейти на главную страницу

self_url () показывает неверное значение при использовании балансировщика нагрузки Apache и PlackUp

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 () работает должным образом.