nginx tiene la $scheme
variable utilizable en sus log_format
líneas.
%H
es el protocolo de solicitud (por ejemplo, "HTTP / 1.1").
¿Cómo puedo hacer lo mismo con Apache?
apache-2.2
logging
Vladimir Panteleev
fuente
fuente
mod_env
esfuerzos pueden haber fallado debido a errores sintácticos .SetEnv
toma su variable y valor sin un signo igual:SetEnv URL_SCHEME http
.SetEnvIf
línea no funciona en Apache <2.4.1 porquemod_setenvif
aparentemente no tiene acceso al entorno SSL . Casi me volvió loco en 2.2.22.mod_ssl
solo establece la variable de entorno si le dice explícitamente que lo haga a través deSSLOptions
.Por alguna razón, no pude hacer que los ejemplos anteriores funcionen, así que lo encontré de otra manera: puede agregar 2 reglas de reescritura en su configuración de la siguiente manera:
Luego agregue esto a su definición de LogFormat.
fuente
Como el esquema de URL no está disponible directamente en formato de registro apache, puede registrar el puerto canónico (por ejemplo, 80/443) del servidor que atiende la solicitud utilizando% p como alternativa:
fuente
Esto funciona para mí con Apache 2.4.23:
%{varname}x
solo está disponible cuando se carga mod_ssl, consulte: https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#logformatsfuente
Defina su salida de registro y agregue% H a ella. Esto es lo mismo para Apache.
Por lo tanto, crea un tipo
LogFormat
como este y afaik hay un par definido en la configuración predeterminada de apache.y agregue el nombre de LogFormat (en este caso "común") al final de su llamada al archivo de registro
Simplemente busque aquí más información sobre el registro y aquí sobre las diferentes cadenas de formato.
fuente
%H
no hace lo que necesito.