目录
- 一、nginx的日志类型
- 二、nginx的日志位置
- 三、nginx的日志内容查看
- 四、access.log是如何实现的
- 五、log_format的详解
- 六、nginx的日志变量有哪些
- 1、HTTP请求变量
- 2、HTTP请求变量配置到日志变量示例
- 3、内置变量
- 4、自定义变量
一、nginx的日志类型
- nginx日志包括error.log和access.log ;
- error.log主要记录nginx处理http请求的错误状态以及nginx本身错误服务的运行状态;
- access.log 主要记录nginx处理http请求的访问状态,主要用于分析每次的访问请求、和客户端的交互以及对行为的一些分析;
二、nginx的日志位置
-
查看nginx配置文件,可在配置文件中找到nginx日志位置
[root@localhost /]# cat /etc/nginx/nginx.conf
-
如上图所示,error.log和access.log位于 /var/log/nginx目录下。
三、nginx的日志内容查看
四、access.log是如何实现的
- access.log主要依赖于log_format的配置,如下图,在nginx配置文件的http块部分定义了log_format
五、log_format的详解
1、log_format语法
#log_format 表示关键字;
#name 表示格式的名字
#[escape=default|json] string ... 表示所有的变量或者字符串
log_format name [escape=default|json] string ...;
2、log_format配置位置
-
log_format只能配置在htpp块当中
3、配置文件中log_format 关键字后main格式的名字解释
- log_format 关键字后的main表示日志输出格式的名称
- access_log /var/log/nginx/access.log后的main表示以log_format 关键字后的main格式输出日志,如下图:
4、配置文件中main格式名字后的一串字符串的解释
- main格式名字后的一串字符串都是由美元符号和字符串组成的变量,所有变量通过一定的格式组合在一起形成日志输出格式。
六、nginx的日志变量有哪些
nginx的日志变量包括http请求变量、nginx内置变量、自定义变量
1、HTTP请求变量
2、HTTP请求变量配置到日志变量示例
以http请求中header部分的 User-Agent参数演示,输出到access.log中
-
查看http请求头部分的User-Agent参数, 即User-Agent: curl/7.29.0
[root@localhost /]# curl -v www.baidu.com >dev/null
-
编辑nginx配置文件,#并在nginx配置文件中log_format main后追加’$http_user_agent’ 变量,保存退出
#编辑nginx配置文件
[root@localhost /]# vim /etc/nginx/nginx.conf
#并在nginx配置文件中log_format main后追加'$http_user_agent' 变量
#'$http_user_agent'变量以美元符号开头,并以http的request请求头部变量组成
log_format main '$http_user_agent' '$remote_addr
-
检查配置文件是否正确,输出 successful表示语法无错误
#检查配置文件是否正确,输出 successful表示语法无错误
[root@localhost /]# vim /etc/nginx/nginx.conf
-
重新加载配置文件
#重新加载配置文件
[root@localhost /]# nginx -s reload -c /etc/nginx/nginx.conf
[root@localhost /]#
-
请求本机nginx页面
#请求本机nginx页面
[root@localhost /]# curl http://127.0.0.1
-
查看access.log日志输出格式,会在输出的每一行最前面看到curl/7.29.01
#查看access.log日志输出格式,会在输出的每一行最前面看到curl/7.29.01
[root@localhost /]# tail -n 200 var/log/nginx/access.log
3、内置变量
-
访问http://nginx.org/en/docs/地址,并点击Logging to syslog 链接;
-
点击access_log链接,链接地址;
-
找到Syntax: log_format name [escape=default|json|none] string …;这部分,即时nginx的内置变量,链接地址
-
在往下找到$status链接,即可查看所有nginx内置变量,链接地址
4、自定义变量