Nginx使用TCP反向代理日志配置不同于http
修改nginx配置文檔/usr/local/nginx/conf/nginx.conf 設置日志格式
stream {
log_format proxy ‘$remote_addr [$time_local] ‘
‘$protocol $status $bytes_sent $bytes_received ‘
‘$session_time "$upstream_addr" ‘
‘"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"‘;
include ./conf.d/*.tcpstream;
}
修改具體的tcp配置文檔
server{
error_log /opt/log/device5001_error.log;
access_log /opt/log/device5001_access.log proxy;
listen 5001;
proxy_pass device5001;
}
檢查日志
tail -f /opt/log/device5001_access.log
PS
?測試發現nginx會等待session結束才會記錄到日志文件;
?session日志只是tcp層面的記錄,包括session時間,發送接收字節數等等;
?session內部發送日志(比如一個socket連接建立起來以后,多次發送心跳數據)需要在應用層面才能記錄;