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連接建立起來以后,多次發送心跳數據)需要在應用層面才能記錄;