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

Пользовательский заголовок 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

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

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

Любая идея?

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

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

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

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

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

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

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

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

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

    service apache2 restart