응답 헤더를 클라이언트로 보내지 않고 Apache 역방향 프록시에 로깅

응답 헤더를 클라이언트로 보내지 않고 Apache 역방향 프록시에 로깅

우리는 수많은 백엔드 서버 앞에서 서버 Apache 서버를 역방향 프록시로 사용합니다. 백엔드 서버는 백엔드 서버의 내부 이름이 포함된 HTTP 응답 헤더("Cast")를 보냅니다.

역방향 프록시에서는 백엔드 서버의 응답 헤더 내용을 기록하고 헤더가 클라이언트로 전송되는 것을 방지하고 싶습니다.

%{Cast}o사용자 정의 구성에 삽입하면 헤더를 로깅하는 것이 간단합니다 LogFormat. 또한 헤더가 클라이언트로 전송되는 것을 방지하는 것은 쉽습니다.Header unset Cast

유일한 문제는 헤더 설정을 해제하면 더 이상 기록할 수 없다는 것입니다.

백엔드의 응답 헤더를 변수에 저장하고 헤더를 설정 해제하고 변수를 기록하는 방법이 있습니까?

노트

  • 역방향 프록시로 사용되는 Apache 서버는 RHEL 6의 Apache 2.2 및 RHEL7의 2.4입니다.
  • 역방향 프록시 규칙은 ProxyPass또는RewriteRule ... [P]

답변1

과거에는 특정 지시문이 함께 잘 작동하지 않는 유사한 상황에 대한 해결 방법으로 중간 VirtualHost 항목을 사용했습니다.

현재 구성은 다음과 같습니다.

<VirtualHost *:80>
   ServerName www.example.com
   ProxyPass /app http://app.example.com/app
   ProxyPassReverse /app http://app.example.com/app
</VirtualHost>

중간 가상 호스트를 가리키도록 수정하고 응답에서 헤더를 제거합니다.

<VirtualHost *:80>
   ServerName www.example.com
   ProxyPass /app http://localhost:8000/app
   ProxyPassReverse /app http://localhost:8000/app
   Header unset Cast
</VirtualHost>

Cast 헤더를 계속 기록할 수 있는 새로운 가상 호스트:

Listen 127.0.0.1:8000
<VirtualHost 127.0.0.1:8000>
   ServerName localhost
   ProxyPass /app http://app.example.com/app
   ProxyPassReverse /app http://app.example.com/appp
   LogFormat %{X-Forwarded-For}o %{Cast}o ...
</VirtualHost>

관련 정보