サーバーの状態を表示できません

サーバーの状態を表示できません

私のアプリケーションは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の機能です。ProxyPassURLの最上位レベルでルールを設定すると、すべてのトラフィック/(含まれている/server-status)がページを提供していないTomcatサーバーに転送されるため、/server-statusApacheは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>

関連情報