第四章 nginx日志管理

前言:在观察nginx的server段可以看到如下信息:access_log logs/host.access.log main;由此得出该server的访问日志的文件是:host.access.log,路径是:logs/host.access.log,格式是:main。但是你也可以自定义其他格式。

4.1 main格式举例

#log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
# ‘$status $body_bytes_sent “$http_referer” ‘
# ‘“$http_user_agent” “$http_x_forwarded_for”‘;

注释:main格式是我们自定义的一种日志的格式,方便于引用,如下所示main类型的日志记录了从remote_addr一直到http_x_forwarded_for等选项

4.2 logs内容解释:

177.105.227.23 - - [07/Feb/2019:08:26:19 +0800] “GET / HTTP/1.1” 200 32 “-“
“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ 51.0.2704.103 Safari/537.36”

4.2.1. remote_addr:即本机远程访问nginx的地址。可以通过:tail -10 logs/access.log 查询

结果截图:

remote_addr

4.2.2. remote_user:本地访问时的访问者,这个参数访问请求如果携带则显示,如果不携带则不显示。

结果截图:

remote_user

4.2.3. time_local:本地访问时的时间。

结果截图:

time_local

4.2.4. request 访问方式:分为Get和Post

结果截图:

request

4.2.5. status 访问状态:分为200:OK;304:not Modified ;404:file not found;403: Forbidden;

结果截图:

status

4.2.6. body_bytes_sent 发送了多少个字节

结果截图:

body_bytes_sent

4.2.7. http_referer 表示上一个页面来自于哪里,应用于做文件或者图片的防盗链

4.2.8. http_user_agent 用户代理:这里我理解为浏览器信息。如下图所示

结果截图:

http_user_agent

注释:有时你看自己的日志信息既不是你的火狐浏览器也不是IE也不是Chrom浏览器,这有可能是蜘蛛(搜索引擎的服务器)爬到你的服务器里了.这种搜索引擎服务器一天到晚的去爬取数据.他们也有一定的协议叫做蜘蛛协议.

举例百度浏览器

如下图所示是百度浏览器.这里显示百度被扫描遗留下来的一些搜索引擎服务器的信息即各个蜘蛛.User-agent表示蜘蛛的来源.Disallow表示被禁止扫描的目录.如果你那一天发现你的日志文件信息http_user_agent出现 Baiduspider;说明百度来光顾你了,你的网站做的很好.

example_baidu

4.2.9. http_x_forwarded_for 这个表示请求代理服务器。举个例子。有时去浏览一些网站,看到下面的评论。显示一位来自美国的用户这个发评论的者的位置不一定是在美国。他有可能是一位在上海的名叫张三的用户通过若干个代理服务器进行上网的,从而实现了掩盖自己Ip的目的。

过程图示:

http_x_forwarded_for

4.3 配置server对应的logs

nginx针对不同的server做不同的log

第一步: 在nginx.conf中添加z.com.access.logs

结果截图:

z_com_logs

第二步: 在http模块中打开main格式,原先是注释掉的

结果截图:

main

第三步: 重启nginx

./nginx -s reload

第四步:测试

打开本地浏览器访问 www.Z.com,连续刷新6次;在对应的 /usr/local/nginx/logs 目录下就出现了z.com.access.log,且对应的内容出现6次访问记录.

结果截图:

z_com_logs1

z_com_logs2

评 论