私のアプリケーションはTomcatのROOTフォルダにデプロイされ、プロキシを使用してApacheに接続します。前任者:-
ProxyPass / ajp://192.168.0.xx:8011/
ProxyPassReverse / ajp://192.168.0.xx:8011/
私が吹くときhttp://test.com/server-status空のページが表示され、access.logに次のエラーが表示されます。
MY IP - - [03/Apr/2014:17:09:48 +0530] "GET /server-status HTTP/1.1" 404 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36"
ただし、Tomcatの他のディレクトリ(テストなど)にアプリケーションをデプロイし、Apacheで次のプロキシ設定を使用する場合
ProxyPass /Test ajp://192.168.0.xxx:8011/Test
ProxyPassReverse /Test ajp://192.168.0.xxx:8011/Test/
ここでURLをクリックすると、次のようになります。http://test.com/server-statusその後、サーバーの状態を含むサーバーページが表示されます。
以下は私のサーバー状態の設定です
<Location /server-status>
SetHandler server-status
Order deny,allow
Satisfy any
Allow from all
</Location>
サーバーの状態を使用する方法とTomcatからROOTにアプリケーションをデプロイする方法を教えてください。
答え1
この/server-status
ページはTomcatではなくApacheの機能です。ProxyPass
URLの最上位レベルでルールを設定すると、すべてのトラフィック/
(含まれている/server-status
)がページを提供していないTomcatサーバーに転送されるため、/server-status
Apacheは404を報告します。
あなたはApacheに話すことができますいいえ/server-status
次のようにルールを追加して、バインドされたトラフィックをプロキシします。
ProxyPass /server-status !
ProxyPass /Test ajp://192.168.0.xxx:8011/Test
ProxyPassReverse /Test ajp://192.168.0.xxx:8011/Test/
公式のApacheドキュメントでこの機能の詳細を読むことができます。
これ!ディレクティブは、サブディレクトリをリバースプロキシしたくない状況に役立ちます。
引用する
答え2
「場所」セクションに「ProxyPass!」を追加できます。結果は次のとおりです。
<Location /server-status>
ProxyPass !
SetHandler server-status
Order deny,allow
Satisfy any
Allow from all
</Location>