【发布时间】:2015-11-21 16:31:03
【问题描述】:
我在 Apache 反向代理后面部署 Play 2.3 应用程序时遇到了一些问题。在这种特殊情况下,必须在 sub-uri 下并通过 SSL 访问应用程序。简而言之,这就是我想要做的:
- 使用 Apache 2.2 作为应用程序的反向代理和 SSL 端点(Apache 和 Play 之间的连接未使用 SSL)
- 在名为“/playtool”的子 uri 下运行应用程序
例如,当我输入“https://server.tld/playtool”时,我想访问播放应用程序的根目录。 但是,这不起作用:
- 所有资产都丢失了,因为 play 将它们的路径生成为“/assets/*”
- 虽然我可以访问应用程序的根目录,但其他路由不起作用,因为它们不使用子 uri:例如他们指的是“server.tld/page”而不是“server.tld/playtool/page”
这是该主机的 Apache 配置:
<IfModule mod_proxy.c>
ProxyPreserveHost on
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /playtool http://127.0.0.1:9000 retry=0
ProxyPassReverse /playtool http://127.0.0.1:9000 retry=0
</IfModule>
这是 play 应用程序中关于代理/subUri 的部分
application.baseUrl="https://server.tld"
XForwardedSupport=127.0.0.1
XForwardedProto=https
XForwardedSupport=127.0.0.1
http.path="/playtool"
有人知道该怎么做吗?提前致谢!
【问题讨论】:
标签: apache playframework proxy