Nginx访问日志配置详细说明以及案例
参考资料
Nginx访问日志配置可以通过log_format和access_log指令来实现。以下是详细说明和案例:
1. log_format指令
log_format用于定义日志的格式。语法如下:
log_format 格式名称 '日志格式';
格式名称:自定义的日志格式名称。
日志格式:使用Nginx内置变量定义日志内容。
常用变量:
$remote_addr:客户端IP地址。$remote_user:客户端用户名(用于基本认证)。$time_local:访问时间。$request:请求行(如GET /index.html HTTP/1.1)。$status:响应状态码(如200、404)。$body_bytes_sent:发送给客户端的字节数。$http_referer:请求来源(Referer)。$http_user_agent:客户端浏览器信息。$http_x_forwarded_for:客户端真实IP(通过代理时)。
2. access_log指令
access_log用于指定日志文件的路径和使用的日志格式。语法如下:
access_log 日志文件路径 格式名称;
日志文件路径:日志文件的存储路径。
格式名称:
log_format中定义的格式名称。
3. 案例
以下是一个完整的Nginx访问日志配置案例:
http {
# 定义日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 指定日志文件路径和格式
access_log /var/log/nginx/access.log main;
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
}4. 解释
log_format main:定义了一个名为main的日志格式,包含客户端IP、时间、请求、状态码、发送字节数、Referer、User-Agent和真实IP。access_log /var/log/nginx/access.log main:将访问日志写入/var/log/nginx/access.log文件,并使用main格式。
5. 日志轮转
为了防止日志文件过大,可以使用logrotate工具进行日志轮转。示例配置:
/var/log/nginx/access.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 www-data adm
sharedscripts
postrotate
/usr/sbin/nginx -s reload
endscript
}6. 总结
通过log_format和access_log指令,可以灵活配置Nginx访问日志的格式和存储路径。结合logrotate工具,可以实现日志的自动轮转和管理。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-112.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
