Encabezado personalizado de Apache con una variable de entorno

Encabezado personalizado de Apache con una variable de entorno

Intento configurar un encabezado HTTP personalizado con una variable de entorno** con el servidor Apache 2.4.6 y headers_module.

Trabajo dentro de un HTTP VHost en el puerto 80.

Todo funciona como se esperaba con un ejemplo básico como:

Header set MyHeader "%D %t"

He leído la documentación de Apache de mod_headers:https://httpd.apache.org/docs/2.4/en/mod/mod_headers.html#header

Se dice que se puede acceder a la variable de entorno usando %{ENVVARNAME}e

(con ENVVARNAME el nombre de la variable ENV)

También leí otra publicación pero no hay una respuesta que funcione realmente: Apache establece un encabezado personalizado con una variable de entorno

Pero mi problema es agregar un encabezado que identifique mi servidor Apache como el valor del entorno HOSTNAME.

  1. Probé esto

Header Set X-Serv %{HOSTNAME}e

Sin éxito: siempre muestra X-Serv:{null} en lugar del valor

  1. También probé:

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

Sin éxito: se muestra en mis encabezados HTTP: X-Serv: %{myvar}e

También probé otras combinaciones:

Tenga en cuenta: mi variable de entorno HOSTNAME existe y se muestra en el comando 'env' con el usuario de Apache propietario del proceso httpd.

¿Alguna idea?

Respuesta1

Debe declarar qué variables de entorno del sistema desea que se puedan utilizar con elPassEnvdirectiva

Un ejemplo práctico sería:

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

Respuesta2

Encontré una manera de hacerlo funcionar:

  • Asegúrese de que el módulo esté activado (mod_headers) o actívelo si es necesario

    a2enmod headers
    
  • en /etc/apache2/envvars agregar

    export HOSTNAME=`uname -n`
    
  • en <VirtualHost>cláusula

    Header set apachehost ${HOSTNAME}
    
  • Reiniciar o recargar el servicio httpd

    service apache2 restart
    

Respuesta3

1.Asegúrese de que el módulo esté activado (mod_headers) o actívelo si es necesario

a2enmod headers

2.en /etc/apache2/envvars agregar

export HOSTNAME1=`uname -n`o`hostname`

3.en <VirtualHost _default:443>la cláusula

PassEnv HOSTNAME1

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

4.Reiniciar o recargar el servicio httpd

service apache2 restart

información relacionada