서버 상태를 볼 수 없습니다

서버 상태를 볼 수 없습니다

내 응용 프로그램은 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를 보고합니다.

당신은 아파치에게 말할 수 있습니다아니요/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>

관련 정보