grails アプリケーションを実行している tomcat サーバーに戻すリバース プロキシを作成する必要があります。私はいつも次のようなリバース プロキシの例を見てきました。
ProxyRequests Off
ProxyPass / http://localhost:8080/appname/
ProxyPassReverse / http://localhost:8080/appname/
ProxyPreserveHost On
ただし、すべてのアプリで、これを行うと、ページが表示され、次のようなコンテキストで静的が読み込まれます: /appname/static/[jsapp.js][mycss.css]
その結果、スタイルと機能性が失われます。したがって、私の回避策はこれを行うことです:
ProxyRequests Off
ProxyPass /appname/ http://localhost:8080/appname/
ProxyPass / http://localhost:8080/appname/
ProxyPassReverse /appname/ http://localhost:8080/appname/
ProxyPassReverse / http://localhost:8080/appname/
ProxyPreserveHost On
これはリバース リバース プロキシだと思います。いずれにせよ、それはハッキーに見え、(私が思うに)副作用があります。Tomcat コンテキストを含む URL を作成します: http://servername.com/appname/user/usernameの代わりにhttp://servername.com/user/username。スタイリングを失うことなく可能であれば、後者を好むでしょう。
ノート:
- ベース URL:http://servername.com に移動すると、正常に動作します。その後にクリックしたリンクは、URL に「/appname/」という名前を付けます。
- TomcatのアプリをROOTアプリにすることでこれを解決できると思いますが、そうしないことを好みます。
- この例では HTTP を使用しています。通常は AJP プロトコルを使用しますが、最後に HTTP を試してみました。
- これは NameVirtualHost 構成にあります。
- Apache 2.2.15、Tomcat 7.0.27、CentOS リリース 6.2 (最終版)、Java バージョン「1.7.0_04」、Grails 2.0.4
私が違うことをする必要があることについて何か考えはありますか?
ありがとう。