Nginx日志格式的设置取决于你的需求和监控目标。以下是一个常见的、推荐的日志格式设置,它包含了大部分有用的信息:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for" '
                '"$request_time" "$upstream_response_time" "$pipe"';
access_log /var/log/nginx/access.log main;
这个日志格式包含了以下字段:
$remote_addr:客户端的IP地址。$remote_user:通过身份验证的用户(如果有)。$time_local:本地时间格式的时间戳。$request:请求行,包括HTTP方法、URL和HTTP版本。$status:HTTP状态码。$body_bytes_sent:发送给客户端的响应体字节数。$http_referer:引用页面的URL(如果有)。$http_user_agent:客户端浏览器的用户代理字符串。$http_x_forwarded_for:通过代理服务器转发的客户端IP地址(如果有)。$request_time:处理请求所花费的总时间。$upstream_response_time:上游服务器响应所花费的时间(如果有)。$pipe:管道传输时间(如果有)。你可以根据自己的需求调整这个日志格式。例如,如果你不需要记录$http_referer和$http_user_agent,可以将它们从日志格式中删除。同样,如果你不需要记录管道传输时间,也可以删除$pipe字段。
要修改Nginx日志格式,请编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/your_domain.conf),并在http、server或location块中设置log_format指令。然后重新加载Nginx配置以使更改生效:
sudo nginx -t      # 检查配置文件语法是否正确
sudo nginx -s reload  # 重新加载配置文件
最后,请确保你的日志文件的存储位置和大小限制设置得当,以便于管理和分析。你可以使用rotatelogs工具或Nginx的logrotate模块来实现日志文件的自动轮转。