Nginx 的日志默认参数包括访问日志(Access Log)和错误日志(Error Log)。以下是对这些默认参数的详细解析:
1. 访问日志(Access Log)
访问日志记录了每个客户端请求的详细信息,包括请求的来源、时间、请求内容、响应状态码等。
默认访问日志位置
Nginx 默认会将访问日志记录到 /var/log/nginx/access.log
。
默认访问日志格式
Nginx 默认使用 combined
格式记录访问日志。combined
格式包括以下字段:
$remote_addr
:客户端的 IP 地址。$remote_user
:客户端用户名(如果启用了基本认证)。$time_local
:本地时间,格式为[day/month/year:hour:minute:second zone]
。$request
:请求行,包括请求方法、请求 URI 和协议版本。$status
:响应状态码。$body_bytes_sent
:发送给客户端的字节数(不包括响应头)。$http_referer
:请求的来源页面(Referer)。$http_user_agent
:客户端的用户代理(User-Agent)。
配置示例
nginx
http {
# 定义日志格式
log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
# 指定访问日志文件路径和使用的日志格式
access_log /var/log/nginx/access.log combined;
}
2. 错误日志(Error Log)
错误日志记录了 Nginx 运行过程中发生的错误信息,包括启动错误、配置错误和请求处理错误等。
默认错误日志位置
Nginx 默认会将错误日志记录到 /var/log/nginx/error.log
。
默认错误日志级别
Nginx 默认的日志级别是 error
,这意味着只记录 error
级别及以上级别(如 crit
, alert
, emerg
)的日志。可以通过 error_log
指令修改日志级别。
配置示例
nginx
http {
# 指定错误日志文件路径和日志级别
error_log /var/log/nginx/error.log error;
}
3. 其他常见日志级别
Nginx 支持以下日志级别:
debug
:调试信息info
:普通信息notice
:通知信息warn
:警告信息error
:错误信息(默认)crit
:严重情况alert
:需要立即处理的情况emerg
:系统不可用
4. 完整示例配置
以下是一个完整的 Nginx 配置示例,包括访问日志和错误日志的默认参数配置:
nginx
http {
# 定义访问日志格式
log_format combined '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
# 配置访问日志
access_log /var/log/nginx/access.log combined;
# 配置错误日志
error_log /var/log/nginx/error.log error;
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
}
5. 其他日志配置选项
Nginx 还支持其他一些日志配置选项,如:
-
缓冲访问日志 :通过
access_log
指令中的buffer
参数可以缓冲日志记录,提高性能。nginxaccess_log /var/log/nginx/access.log combined buffer=32k;
-
条件记录日志 :可以通过配置条件来有选择地记录日志。
nginxaccess_log /var/log/nginx/access.log combined if=$request_time > 1;