2011-05-14 80 views
2

我在前臺運行前端代理時遇到了很多困難。 這篇文章也在谷歌組上,我會發布收到的建議。前端代理服務器沒有正確引用資源

我使用的是Apache和mod_proxy,應用程序應該在位置「mywebsite.be/dev/app/」中運行。它能夠顯示HTML。

但是當我運行該應用程序時,所有的CSS/JS /圖像都丟失了,也是所有的引用都不正確。我查看了源代碼,似乎Play沒有將@ {/ pathname/to/resources}和其他相關鏈接替換爲正確的url。爲了讓所有東西都能正常工作,所有的URL都應該以「/ dev/app」爲前綴。如何才能做到這一點?

我試着用ctxPath做實驗,但這不是我所需要的,應用程序本身運行良好,但apache2在翻譯所有那些反向代理中存在問題。

這能解決嗎?我正在考慮在模板系統中編輯@ -operator,但那不可能吧?

問候, 碧玉

+0

你檢查了Apache錯誤日誌,它應該暗示什麼是錯的。我的猜測是你的mod代理配置丟失了一些東西 – maxmc 2011-05-14 10:10:32

回答

1

我的一位隊友想出了答案。這很簡單。

如果你有你的Apache2配置,而不是指向localhost的根,你只要點到本地主機:9000 /開發/應用:

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> 

在認爲有在另一個子目錄此招數的Apache2你的本地主機服務器,但事實上,沒有任何,但現在它引用正確,因此將所有流量轉換爲相應的資源。

也許不是優雅的方式做的事情,但它適用於所有幫助精細:)

感謝。希望這篇文章能幫助其他擁有前端代理的人。

問候

0

我會建議你使用代理平衡器,因爲這將有助於平衡您的服務器,如果你打算使用遊戲服務器的多個實例,在未來

<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/ 

現在它會通過你的流量到url1:端口或url2:端口,它也將獲取您的圖像和其他靜態URL

相關問題