前言
- 日志对于程序很重要,可用于问题排错,记录程序运行状态等。好的日志可以大大提高程序员的排错效率。Nginx中主要有访客日志和错误日志两大部分。
设置访客日志
- 访客日志主要记录客户端访问Nginx服务器时一些请求和响应信息。官方文档对于访客日志的说明:access_log
- 设置访客日志需要在nginx配置文件 /usr/local/nginx/conf/nginx.conf设置以下信息,这个可以设置到http节点下,也可以设置到server节点下。默认已经在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 logs/access.log main;
- 参数解释
- $remote_addr : 访问网站的客户端IP地址
- $remote_user : 客户端用户名称
- $time_local : 访问时间与时区
- $request : 用户的http请求起始行信息
- $status : http响应状态码
- $body_bytes_sent : 服务器发给客户端的响应body字节数
- $http_referer : 记录请求是哪个链接访问过来的
- $http_user_agent :记录客户端访问信息
- $http_x_forwarded_for : 当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置。
- 日志记录在 log/access.log中,发送一次请求,就会生成一条访问日志。我分别用postman和谷歌浏览器发送了一次GET请求,可以与上面设置的字段比对下。如果有哪个字段没有拿到数据,就会显示一条短横线。
- postman请求
-
192.168.206.1 - - [27/May/2023:19:59:15 -0700] "GET / HTTP/1.1" 200 634 "-" "PostmanRuntime/7.32.2" "-"
- 谷歌浏览器请求
-
192.168.206.1 - - [27/May/2023:20:06:02 -0700] "GET / HTTP/1.1" 200 634 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36" "-"
内置变量
- 上面记录的日志信息是nginx默认设置的一些常用信息,如果我们记录更多的访客信息,可以自己在日志中添加其他变量。具体可参考nginx官网Alphabetical index of variables
关闭访客日志
- 如果要关闭日志,在access_log后面的日志存储位置改成off,重新加载配置就关闭了。
-
access_log off;
设置错误日志
- 错误日志默认是设置的全局的,也可以写到http节点或者server节点中。
-
error_log logs/error.log error;
- 参数1表示日志的保存目录,参数2表示日志级别。日志级别有以下几种,默认是error
- debug info notice warn error crit alert