У нас есть nginx, настроенный с proxy_pass
, и мы хотели бы узнать, какой целевой URI после всех настроек директивы применено и обработано. В случае ошибки nginx имеет строку восходящего потока: "https://11.22.33.44:443/test/foo-bar/"
в журналах, как показано ниже:
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"
Что будет способ показать ту же информацию восходящего потока
в журналах доступа? Мы попробовали следующую конфигурацию журнала:
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"';
Он может отображать только IP-адрес без полного пути, есть ли другие переменные nginx в индекс переменных , которые могут отображаться так же, как журнал ошибок?
Единственное решение, которое я нашел, заключалось в том, чтобы серверная часть сохраняла его в заголовке ответа. Попросите nginx скрыть заголовок, а не удалить его, чтобы вы могли использовать его в своих журналах.