nginx hat die $scheme
in seinen log_format
Zeilen verwendbare Variable .
%H
ist das Anforderungsprotokoll (zB "HTTP / 1.1").
Wie kann ich dasselbe mit Apache machen?
apache-2.2
logging
Vladimir Panteleev
quelle
quelle
mod_env
Bemühungen sind möglicherweise aufgrund von syntaktischen Fehlern gescheitert .SetEnv
nimmt seine Variable und seinen Wert ohne Gleichheitszeichen :SetEnv URL_SCHEME http
.SetEnvIf
funktioniert die Zeile unter Apache <2.4.1 nicht, damod_setenvif
anscheinend kein Zugriff auf die SSL-Umgebung besteht . hätte mich am 2.2.22 fast verrückt gemacht.mod_ssl
setzt nur den Umgebungsvariable , wenn Sie explizit sagen , dies zu tun, überSSLOptions
.Aus irgendeinem Grund konnte ich die obigen Beispiele nicht zum Laufen bringen, also habe ich einen anderen Weg gefunden: Sie können Ihrer Konfiguration zwei Umschreiberegeln wie folgt hinzufügen:
Fügen Sie dies dann Ihrer LogFormat-Definition hinzu.
quelle
Da das URL-Schema im Apache-Protokollformat nicht direkt verfügbar ist, können Sie den kanonischen Port (z. B. 80/443) des Servers, der die Anforderung bedient, protokollieren, indem Sie alternativ% p verwenden:
quelle
Dies funktioniert bei mir mit Apache 2.4.23:
%{varname}x
ist nur verfügbar, wenn mod_ssl geladen ist, siehe: https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#logformatsquelle
Definieren Sie Ihre Protokollausgabe und fügen Sie% H hinzu. Dies gilt auch für Apache.
Sie erstellen also eine
LogFormat
solche und afaik gibt es ein paar in der Standard-Apache-Konfiguration definiert.und fügen Sie den Namen des LogFormat (in diesem Fall "common") am Ende Ihres Logfile-Aufrufs hinzu
Suchen Sie hier nach weiteren Informationen zum Protokoll und hier nach den verschiedenen Formatzeichenfolgen.
quelle
%H
das nicht das tut, was ich brauche.