nginx a la $scheme
variable utilisable dans ses log_format
lignes.
%H
est le protocole de requête (par exemple "HTTP / 1.1").
Comment puis-je faire de même avec Apache?
apache-2.2
logging
Vladimir Panteleev
la source
la source
mod_env
efforts peuvent avoir échoué en raison d' erreurs syntaxiques .SetEnv
prend sa variable et la valeur sans signe égal:SetEnv URL_SCHEME http
.SetEnvIf
ligne ne fonctionne pas sur apache <2.4.1 carmod_setenvif
n'a apparemment pas accès à l'environnement ssl . m'a presque rendu fou le 2.2.22.mod_ssl
ne définit la variable d'environnement que si vous lui demandez explicitement de le faire viaSSLOptions
.Pour une raison quelconque, je n'ai pas pu faire fonctionner les exemples ci-dessus, j'ai donc trouvé un autre moyen: vous pouvez ajouter 2 règles de réécriture dans votre configuration comme suit:
Ajoutez ensuite cela dans votre définition LogFormat.
la source
Comme le schéma d'url n'est pas directement disponible au format de journal Apache, vous pouvez enregistrer le port canonique (par exemple 80/443) du serveur servant la demande en utilisant% p comme alternative:
la source
Cela fonctionne pour moi avec Apache 2.4.23:
%{varname}x
n'est disponible que lorsque mod_ssl est chargé, voir: https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#logformatsla source
Définissez votre sortie de journal et ajoutez-y% H. C'est la même chose pour Apache.
Donc, vous construisez un
LogFormat
comme ça et afaik il y en a un couple défini dans la configuration par défaut d'Apache.et ajoutez le nom du LogFormat (dans ce cas "commun") à la fin de votre appel de fichier journal
Regardez ici pour plus d'informations sur le journal et ici pour les différentes chaînes de format.
la source
%H
cela ne fait pas ce dont j'ai besoin.