Apache使用HTTP :: Server :: PSGI代理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()按预期工作。