Apache 前端代理未正确引用资源

Apache 前端代理未正确引用资源,apache,apache2,playframework,mod-proxy,Apache,Apache2,Playframework,Mod Proxy,我在游戏前运行前端代理时遇到了很多困难。 这篇文章也是关于谷歌集团的,我会把收到的关于这两方面的建议都发出去 我使用的是apache和mod_代理,应用程序应该运行在“mywebsite.be/dev/app/”位置。它能够显示HTML 但是当我运行应用程序时,所有的CSS/JS/图像都丢失了,而且所有的引用都不正确。我查找了源代码,似乎Play没有替换@{/pathname/to/resources}和指向正确url的其他相关链接。为了让一切正常工作,所有URL都应该以“/dev/app”作为

我在游戏前运行前端代理时遇到了很多困难。 这篇文章也是关于谷歌集团的,我会把收到的关于这两方面的建议都发出去

我使用的是apache和mod_代理,应用程序应该运行在“mywebsite.be/dev/app/”位置。它能够显示HTML

但是当我运行应用程序时,所有的CSS/JS/图像都丢失了,而且所有的引用都不正确。我查找了源代码,似乎Play没有替换@{/pathname/to/resources}和指向正确url的其他相关链接。为了让一切正常工作,所有URL都应该以“/dev/app”作为前缀。如何做到这一点

我尝试过使用ctxPath,但这不是我需要的,应用程序本身运行良好,但apache2在反向代理中翻译所有这些URL时遇到问题

这能解决吗?我想在模板系统中编辑-操作符,但那不可能,对吧

您好,
贾斯珀你看过这篇文章了吗?我认为这是相关的


另外,根据我在游戏小组中读到的一篇帖子,请注意游戏1.2.2,因为这是为了解决这个问题。

我的一位队友想出了答案。这很简单

如果您有apache2配置,则只需指向localhost:9000/dev/app:

ProxyPreserveHost On
RedirectMatch /dev/app /dev/app/
<Location /dev/app/>
AuthType Basic
AuthName "Test Omgeving"
AuthUserFile /var/trac/htpasswd
Require valid-user

ProxyPass http://127.0.0.1:9000/dev/app/
ProxyPassReverse http://127.0.0.1:9000/dev/app/
</Location>
ProxyPreserveHost打开
重定向匹配/dev/app/dev/app/
AuthType Basic
AuthName“测试对象”
AuthUserFile/var/trac/htpasswd
需要有效用户
ProxyPasshttp://127.0.0.1:9000/dev/app/
ProxyPassReversehttp://127.0.0.1:9000/dev/app/
这让apache2误以为本地主机服务器中还有另一个子目录,但实际上没有,但现在它引用正确,因此将所有流量转换为相应的资源

也许这不是一种优雅的做事方式,但效果很好:)

谢谢你的帮助。希望这篇文章能帮助其他有前端代理的人


您好

我建议您使用代理平衡器,因为如果您将来计划使用多个play server实例,它将有助于平衡您的服务器

 <Proxy balancer://my-balancer>
    Order deny,allow
    Allow from all
    BalancerMember url1:port route=instanceOne
    BalancerMember url2:port route=instanceTwo
    ProxySet lbmethod=bytraffic
    </Proxy>
    ProxyPass /  balancer://my-balancer/

命令拒绝,允许
通融
BalancerMember url1:端口路由=instanceOne
BalancerMember url2:端口路由=instanceTwo
ProxySet lbmethod=bytraffic
ProxyPass/balancer://my-balancer/

现在,它将把您的流量传递到url1:port或url2:port,还将获取您的图像和其他静态URL

如果您检查了apache错误日志,它应该会提示出什么问题。我猜你的mod proxy配置中缺少了一些东西。非常好的贡献,谢谢!我没有使用ctxpath,但它让我思考,而且它很有效。我将把解决方案放在下面:)