nginx日志配置

in 大杂烩 with 0 comments, 3321 views

1.需求

最近将博客迁移到了独立云服务器(centos环境),可玩性更高也更自由了,不过事物总是带有两面性,自由的同时,虚拟主机的傻瓜式配置和部署的便利就享受不到了,很多事情得自己亲自操刀。现在就遇到个问题,我想了解各个搜索引擎爬虫来光顾的情况,毕竟这对网站迁移后还是蛮重要的。表示有时候就爱看着这群小蜘蛛爬来爬去的感觉 。博主的服务器是用的nginx,自然就想到了查看nginx日志这个方法。

2.步骤

2.1设置配置文件

首先得找到nginx配置文件。博主因为对后端不够熟悉(藉口),忘了nginx安装目录。于是balabala一顿搜,找到了这个"小家伙"---nginx -t,顺着它总算找到我们需要的配置文件nginx.conf

nginx -t
nginx: the configuration file /yourpath/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /yourpath/nginx/conf/nginx.conf test is successful

nginx的配置非常方便,我们现在需要配置访问日志access_log,nginx默认是开启日志功能的,默认会写到安装目录logs/access.log这个文件,不过这个是所有server的访问日志,如果你的nginx运行了很多的server(可能你的日志会像裹脚布那么长...),好在我们可以很方便的自定义每个server的日志格式及写到各个独立的日志文件中。

我们需要做的只是在http指令中加一行access_log off关闭全局日志,然后在各个不同server中配置自己想要的日志配置即可。

下面以只运行一个server的情况为例(太懒...)在http指令中加入如下配置:

log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
access_log /your/log/path/access.log;

最终在日志文件中看到的结果:

182.118.21.208 - - [05/Nov/2016:20:30:30 +0800] "GET /article/category/css HTTP/1.1" 200 3056 "http://17ria.com/article/category/css" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider(compatible; HaosouSpider; http://www.haosou.com/help/help_3_2.html)"

现在我们就可以很方便的看到蜘蛛的来访情况了

3.重启nginx服务

表示忘记了一件事,修改了配置文件后我们还需要重启服务才能使nginx配置生效。如果有些小伙伴按此方法设置后,折腾了半天也没见效果,博主表示鸭梨山大,只能抱以同情。

// 重启nginx
nginx -s reload

结束(END)

nginx是一个高性能、高可靠性的web服务器和反向代理服务器,安装非常的简单,配置也很简洁,它还能很好的和其它工具进行配合。比如作为nodejs的反向代理以提供更好性能和响应速度的静态资源访问,从而弥补nodejs在这方面的劣势。

以上只介绍了访问日志access_log的配置(表示看蜘蛛到访的情况足够用了),感兴趣的你可以研究下配置error_log来记录服务器的错误日志,方法基本大同小异。

补充(adds)

日志分割

一个较为简单的分割方法,按日期来分,这样既直观又合理。

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
            set $year $1;
            set $month $2;
            set $day $3;
        }
access_log /home/wwwlogs/$year-$month-$day-access.log main;

可能会遇到的问题

如果nginx配置中,user指令指定的用户在对应的日志目录下没有权限,会造成创建日志失败。此错误比较隐蔽

Responses ${replyToWho} / Cancel Reply