当 nginx 有多个上游时,如何跟踪一个上游?

How to keep track of an upstream when nginx has multiple upstreams?

upstream app_server {
  server unix: server1
}

upstream app_server_new {
  server unix: server2
}

server {
  location ^~ /about {
    proxy_pass http://app_server_new
  }
  location @app {
    proxy_pass http://app_server
  }
}

所以当用户点击 /about 时,服务器重定向到上游 app_server_new

现在我有一个 development.log 美洲狮的文件。但这并不能说明重定向去了哪个上游。有什么方法可以让我知道重定向是否真的有效,比如记录关于上游点击的日志?

您可以为此定义自定义日志。 使用您选择的字段:

log_format upstream '$remote_addr - $upstream_addr - $request - $upstream_response_time - $request_time';

然后根据您的需要在特定上下文中使用它:

access_log /var/log/nginx/upstream.log upstream;

可在此处找到更多信息:
http://nginx.org/en/docs/http/ngx_http_log_module.html
http://nginx.org/en/docs/http/ngx_http_upstream_module.html