for - URL de registro completa en nginx log
gitlab for company (2)
Usamos el siguiente archivo de configuración de sitio nginx en nuestro entorno de producción.
log_format main ''$http_x_forwarded_for - $remote_user [$time_local] "$request" ''
''$status $body_bytes_sent "$http_referer" ''
''"$http_user_agent" $request_time'';
server {
root /srv/www/web;
server_name *.test.com;
access_log /var/log/nginx/xxx.test.com.access.log main;
Las solicitudes http " http://a.test.com/ping " y " http://b.test.com/ping " se registrarán en el archivo xxx.test.com.access.log.
Pero hay un problema, nginx no almacena "nombre de dominio" en xxx.test.com.access.log.
" http://a.test.com/ping " y " http://b.test.com/ping " comparten la misma solicitud "Get / ping".
¿Cómo puedo registrar "a.test.com" o "b.test.com" en nginx log?
Intente agregar la variable $host
en log_format:
log_format main ''$http_x_forwarded_for - $remote_user [$time_local] "$host" "$request" ''
''$status $body_bytes_sent "$http_referer" ''
''"$http_user_agent" $request_time'';
http://wiki.nginx.org/HttpCoreModule#.24host :
$ host
Esta variable es igual a Host de línea en el encabezado de solicitud o nombre del servidor que procesa la solicitud si el encabezado de Host no está disponible.
Esta variable puede tener un valor diferente de $ http_host en tales casos: 1) cuando el encabezado de entrada del Host está ausente o tiene un valor vacío, $ host es igual al valor de la directiva server_name; 2) cuando el valor de Host contiene el número de puerto, $ host no incluye ese número de puerto. El valor $ host siempre está en minúscula desde 0.8.17.
Si desea registrar la URL completa solicitada, entonces mi método es
log_format main ''$http_x_forwarded_for - $remote_user [$time_local] ''
''"$request_method $scheme://$host$request_uri $server_protocol" ''
''$status $body_bytes_sent "$http_referer" ''
''"$http_user_agent" $request_time'';
Entonces, divida la solicitud $ en sus partes constituyentes y muestre $ host en el medio. También le permite ver si la solicitud es http es https.