Apache Custom Header mit einer Umgebungsvariable

Apache Custom Header mit einer Umgebungsvariable

Ich versuche, mit Apache Server 2.4.6 und headers_module einen benutzerdefinierten HTTP-Header mit einer Umgebungsvariable** festzulegen.

Ich arbeite in einem HTTP-VHost auf Port 80.

Alles funktioniert wie erwartet mit einem einfachen Beispiel wie:

Header set MyHeader "%D %t"

Ich habe die Apache-Dokumentation von mod_headers gelesen:https://httpd.apache.org/docs/2.4/en/mod/mod_headers.html#header

Man sagt, dass man auf Umgebungsvariablen zugreifen kann mit %{ENVVARNAME}e

(mit ENVVARNAME der Name der ENV-Variable)

Ich habe auch andere Beiträge gelesen, aber keine wirklich funktionierende Antwort gefunden: Apache legt benutzerdefinierten Header mit einer Umgebungsvariable fest

Mein Problem besteht jedoch darin, einen Header hinzuzufügen, der meinen Apache-Server identifiziert, beispielsweise den Umgebungswert HOSTNAME

  1. Ich habe dies versucht

Header Set X-Serv %{HOSTNAME}e

Kein Erfolg: immer X-Serv:{null} anstelle des Wertes anzeigen

  1. Ich habe auch versucht:

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

Kein Erfolg: In meinen HTTP-Headern wird angezeigt: X-Serv: %{myvar}e

Ich habe auch einige andere Kombinationen ausprobiert:

Bitte beachten Sie: Meine Umgebungsvariable HOSTNAME existiert und wird im Befehl „env“ mit dem Apache-Benutzer angezeigt, dem der httpd-Prozess gehört.

Irgendeine Idee?

Antwort1

Sie müssen angeben, welche Systemumgebungsvariablen mit demPassEnvRichtlinie

Ein funktionierendes Beispiel wäre:

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

Antwort2

Habe einen Weg gefunden, es zum Laufen zu bringen:

  • Stellen Sie sicher, dass das Modul aktiviert ist (mod_headers) oder aktivieren Sie es bei Bedarf

    a2enmod headers
    
  • in /etc/apache2/envvars hinzufügen

    export HOSTNAME=`uname -n`
    
  • in- <VirtualHost>Klausel

    Header set apachehost ${HOSTNAME}
    
  • Starten Sie den httpd-Dienst neu oder laden Sie ihn neu

    service apache2 restart
    

Antwort3

1.Stellen Sie sicher, dass das Modul aktiviert ist (mod_headers) oder aktivieren Sie es bei Bedarf

a2enmod headers

2.in /etc/apache2/envvars hinzufügen

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

3.in- <VirtualHost _default:443>Klausel

PassEnv HOSTNAME1

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

4. Starten Sie den httpd-Dienst neu oder laden Sie ihn neu

service apache2 restart

verwandte Informationen