Назад | Перейти на главную страницу

Ведение журнала заголовков ответов в обратном прокси-сервере Apache без отправки их клиенту

Мы используем несколько серверов Apache в качестве обратного прокси перед многочисленными внутренними серверами. Внутренние серверы отправляют заголовок HTTP-ответа («Cast»), который содержит внутреннее имя внутреннего сервера.

В обратном прокси-сервере я хотел бы регистрировать содержимое заголовка ответа внутреннего сервера и предотвращать отправку заголовка клиенту.

Логирование заголовка просто с помощью вставки %{Cast}o в нашем обычае LogFormat конфигурация. Кроме того, легко предотвратить отправку заголовка клиенту, используя Header unset Cast

Единственная проблема в том, что при отключении заголовка его больше нельзя регистрировать.

Есть ли способ сохранить заголовок ответа серверной части в переменной, отключить заголовок и записать переменную?

Ноты

Раньше я использовал промежуточную запись 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>