nginx的日志记录和格式,在主配置文件中有配置
vim /usr/local/nginx/conf/nginx.conf
中这一行
log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
‘$host "$request_uri" $status‘
‘"$http_referer" "$http_user_agent"‘;
combined_realip 是日志的名字,可以自定义。如:wyp
$remote_addr 远程IP
$http_x_forwarded_for 代理的IP
[$time_local] 时间
$host 域名
$request_uri 访问地址
$status 状态码
因为主配置文件中定义了日志格式,所以需要在虚拟主机配置中体现,
root /usr/local/discuz;插入以下代码:
access_log /tmp/access.log combined_realip;
访问日志的路径和名称 日志的格式
接下来用curl -x127.0.0.1:80 www.llzdwyp.com/123 -I来测试
发现/tmp下多了access.log的日志文件,显示/123没有找到的404代码
如果用curl -x127.0.0.1:80 www.llzdwyp.com -I来测试
会发现许多的访问日志,包含jpg、png等,等下我们来去掉这些无关的日志
指定访问日志的时候,还是用到location这条语句,这里需要注意的是:localtion是有先后顺序的,如
果匹配了第一条,就不往后匹配,所以之前我们定义的用户认证要放在前面,指定文件类型日志放到后面,否则还可以登录管理中心。
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
access_log off;
}
其中日志里有许多/static/和/cache/目录无关的日志,也可以指定不记录。照上面写一行
在上面的代码下面插入:
location ~ (static|cache)
{
access_log off;
}
注意:切记location有匹配顺序,这个案例中admin.php,所以顺序无所谓。