2013-09-05 31 views
11

Chúng tôi sử dụng Nginx như một reverse proxy với thiết lập này:Làm thế nào để ghi lại máy chủ ngược dòng ngược phục vụ yêu cầu trong nhật ký Nginx?

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; 
    [...] 
    } 
    [...] 
} 

Là một phần của bản ghi truy cập, tôi muốn ghi lại các máy chủ ở thượng nguồn đã phục vụ theo yêu cầu, mà trong trường hợp của chúng tôi chỉ có nghĩa là localhost liên quan Hải cảng.

Các biến trong tài liệu (http://wiki.nginx.org/HttpProxyModule#Variables) đề cập đến $ proxy_host và $ proxy_port nhưng trong nhật ký, chúng luôn kết thúc bằng các giá trị "giao diện người dùng" và "80".

Trả lời

14

Sử dụng $upstream_addr và bạn sẽ nhận được, ví dụ, 127.0.0.1:8000 hoặc unix:/home/my_user/www/my_site/tmp/.unicorn.sock

24

Đầu tiên thêm định dạng đăng nhập mới

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'; 

và sau đó xác định lại AccessLog như

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

log_format đi vào http { }, access_log có thể nằm bên trong vị trí.

+0

Cảm ơn vì điều này! Bây giờ chúng ta có một bức tranh rõ ràng về thời gian yêu cầu. –

Các vấn đề liên quan