Пользовательский заголовок Apache с переменной среды

Пользовательский заголовок Apache с переменной среды

Я пытаюсь установить пользовательский заголовок HTTP с помощью переменной среды** с сервером Apache 2.4.6 и headers_module.

Я работаю внутри HTTP VHost на порту 80.

Все работает так, как и ожидалось, с таким простым примером:

Header set MyHeader "%D %t"

Я прочитал документацию Apache по mod_headers:https://httpd.apache.org/docs/2.4/en/mod/mod_headers.html#header

Говорят, что можно получить доступ к переменным окружения, используя %{ENVVARNAME}e

(где ENVVARNAME — имя переменной ENV)

Я также прочитал другой пост, но там нет реального рабочего ответа: Apache устанавливает пользовательский заголовок с переменной окружения

Но моя проблема заключается в добавлении заголовка, который идентифицирует мой сервер Apache, как значение среды HOSTNAME.

  1. Я попробовал это

Header Set X-Serv %{HOSTNAME}e

Не удалось: всегда отображать X-Serv:{null} вместо значения

  1. Я также попробовал:

SetEnv myvar ${HOSTNAME} Header set X-Serv %{myvar}e

Не удалось: в моих заголовках HTTP отображается: X-Serv: %{myvar}e

Я также попробовал несколько других различных комбинаций:

Обратите внимание: моя переменная среды HOSTNAME существует и отображается в команде «env» с пользователем Apache, владеющим процессом httpd.

Есть идеи?

решение1

Вам необходимо указать, какие системные переменные среды вы хотите использовать сPassEnvдиректива

Рабочий пример:

PassEnv HOSTNAME
Header Set X-Serv %{HOSTNAME}e

решение2

Нашел способ заставить это работать:

  • Убедитесь, что модуль активирован (mod_headers) или активируйте его при необходимости.

    a2enmod headers
    
  • в /etc/apache2/envvars добавить

    export HOSTNAME=`uname -n`
    
  • в <VirtualHost>пункте

    Header set apachehost ${HOSTNAME}
    
  • Перезапустить или перезагрузить службу httpd

    service apache2 restart
    

решение3

1.Убедитесь, что модуль активирован (mod_headers) или активируйте его при необходимости.

a2enmod headers

2.в /etc/apache2/envvars добавить

export HOSTNAME1=`uname -n`или`hostname`

3.в <VirtualHost _default:443>пункте

PassEnv HOSTNAME1

Header set X-Server "%{HOSTNAME1}e"

4. Перезапустите или перезагрузите службу httpd.

service apache2 restart

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