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连接建立起来以后,多次发送心跳数据)需要在应用层面才能记录;