Регистрация заголовков ответа в обратном прокси-сервере Apache без отправки их клиенту

Регистрация заголовков ответа в обратном прокси-сервере Apache без отправки их клиенту

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

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

Регистрация заголовка проста в установке %{Cast}oв нашей пользовательской LogFormatконфигурации. Также легко предотвратить отправку заголовка клиенту, используяHeader unset Cast

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

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

Примечания

  • В качестве обратных прокси-серверов используются серверы Apache 2.2 на RHEL 6 и 2.4 на RHEL7.
  • Правила обратного прокси используют 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>

Связанный контент