1 votes

Nginx enregistre l'URI complet avec proxy_pass dans le journal des accès ?

Nous avons configuré nginx avec proxy_pass et je voudrais voir quel est l'URI cible après l'application et le traitement de tous les paramètres de la directive. En cas d'erreur, nginx a le upstream: "https://11.22.33.44:443/test/foo-bar/" dans les journaux comme ci-dessous :

2020/03/12 02:17:37 [error] 27495#27495: *130660 connect() failed (113: No route to host) while connecting to upstream, client: 172.16.0.5, server: , request: "POST /foo-bar/ HTTP/1.1", upstream: "https://11.22.33.44:443/test/foo-bar/", host: "test.example.com"

Quelle serait la façon de montrer la même upstream dans les journaux d'accès ? Nous avons essayé la configuration de journal suivante :

log_format main 'site="$server_name" server="$host" dest_port="$server_port" dest_ip="$server_addr" '
                'src="$remote_addr" src_ip="$realip_remote_addr" user="$remote_user" '
                'time_local="$time_local" protocol="$server_protocol" status="$status" '
                'bytes_out="$body_bytes_sent" bytes_in="$upstream_response_length" '
                'http_referer="$http_referer" http_user_agent="$http_user_agent" '
                'nginx_version="$nginx_version" http_x_forwarded_for="$http_x_forwarded_for" '
                'http_x_header="$http_x_header" uri_query="$query_string" uri_path="$uri" '
                'http_method="$request_method" response_time="$upstream_response_time" '
                'cookie="$http_cookie" request_time="$request_time" '
                'upstream_addr="$upstream_addr" upstream_http_server="$upstream_http_server"';

Il ne peut afficher que l'adresse IP sans le chemin complet, y a-t-il une autre variable nginx dans le fichier indice des variables qui peut montrer la même chose que le journal des erreurs ?

2voto

Gerard H. Pille Points 2424

La seule solution que j'ai trouvée est de demander au backend de le stocker dans un en-tête de réponse. Demandez à nginx de masquer l'en-tête, et non de le supprimer, afin que vous puissiez l'utiliser dans vos journaux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X