2

私は、プレイの前にフロントエンド プロキシを実行するのに非常に多くの問題を抱えています。この投稿は Google グループにもあります。受け取った提案を両方に投稿します。

私は apache と mod_proxy を使用しており、アプリケーションは "mywebsite.be/dev/app/" の場所で実行されているはずです。HTMLを表示することができます。

しかし、アプリケーションを実行すると、すべての CSS/JS/画像が欠落し、すべての参照も正しくありません。ソースを調べたところ、Play は @{/pathname/to/resources} およびその他の相対リンクを正しい URL に置き換えていないようです。すべてを機能させるには、すべての URL に「/dev/app」というプレフィックスを付ける必要があります。これはどのように行うことができますか?

ctxPath を試してみましたが、それは私が必要とするものではありません。アプリケーションは単独で正常に動作しますが、apache2 にはリバース プロキシでこれらすべての URL を変換する際に問題があります。

これは解決できますか?@-operator をテンプレート システムで何とか編集しようと考えていましたが、それはできませんね。

こんにちは、ジャスパー

4

3 に答える 3

2

この投稿を見ましたか?関連していると思います。

Apache をプロキシとして使用すると、playframework で静的リソースの正しい URL を生成できない

また、私が Play グループで読んだ投稿によると、これはこの問題を解決することを意図しているため、Play 1.2.2 にも注目してください。

于 2011-05-14T15:59:45.247 に答える
1

私のチームメイトの一人が答えを思いつきました。とても簡単です。

Apache2 構成がある場合は、localhost ルートを指すのではなく、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>

これにより、localhost サーバーに別のサブディレクトリがあると apache2 が認識しますが、実際には何もありませんが、正しく参照されるようになり、すべてのトラフィックが対応するリソースに変換されます。

おそらく上品な方法ではありませんが、うまく機能します:)

すべての助けをありがとう。この投稿が、フロントエンド プロキシを使用している他の人々に役立つことを願っています。

ご挨拶

于 2011-05-15T08:13:26.713 に答える
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:port または url2:port に渡され、画像やその他の静的 URL も取得されます

于 2012-12-13T05:11:41.427 に答える