2013-09-05 5 views
11

Wir Nginx als Reverse Proxy mit diesem Setup verwenden:Wie aufzeichnen Reverse-Proxy-Upstream Server Serving-Anfrage in Nginx-Protokoll?

upstream frontends { 
    server 127.0.0.1:8000; 
    server 127.0.0.1:8001; 
    server 127.0.0.1:8002; 
    [...] 
} 

server { 
    location/{ 
    proxy_pass http://frontends; 
    [...] 
    } 
    [...] 
} 

Im Rahmen des Zugriffsprotokoll, ich möchte den Upstream-Server aufnehmen, der die Anforderung, die in unserem Fall bedeutet nur, dass die zugehörige localhost gedient hat Hafen.

Die Variablen in der Dokumentation (http://wiki.nginx.org/HttpProxyModule#Variables) erwähnen $ proxy_host und $ proxy_port, aber im Protokoll werden immer die Werte "frontends" und "80" angezeigt.

Antwort

14

Verwenden $upstream_addr und Sie erhalten zum Beispiel 127.0.0.1:8000 oder unix:/home/my_user/www/my_site/tmp/.unicorn.sock

24

Erste neue Logging-Format

log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time'; 

und dann neu zu definieren accesslog als

access_log /var/log/nginx/access.log upstreamlog; 

log_format geht an http { } Abschnitt kann access_log innerhalb des Standorts sein.

+0

Danke dafür! Jetzt haben wir ein klares Bild der Anfragezeiten. –

Verwandte Themen