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
- Ich habe dies versucht
Header Set X-Serv %{HOSTNAME}e
Kein Erfolg: immer X-Serv:{null} anstelle des Wertes anzeigen
- 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 demPassEnv
Richtlinie
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>
KlauselHeader 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