一)错误日志
1、介绍
功能:配置记录nginx启动及运行过程中所产生的错误,是调试Nginx服务的重要手段,属于核心模块
2、命令 error_log
语法:
Syntax: error_log file [level];
Default:
error_log logs/error.log error;
案例:
server {
listen 80;
server_name www.a.com a.com;
error_log /vhosts/web1/logs/error_log;
if ( $http_host != "www.a.com" ){
rewrite ^/(.*)$ http://www.a.com/$1 permanent;
}
location / {
root "/vhosts/web1";
index index.html index.htm;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
error_page 404 =302 /404.html;
}
说明:可以为每个location配置不同的错误路径
二)访问日志
1)log_format
log_format name [escape=default|json] string ...;
案例:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
$remote_addr 客户端地址
$http_x_forwarded_for 设置web节点记录客户端地址的配置
$remote_user 客户端用户名称
$request 请求的host
$status 状态
$body_bytes_sents 报文主体大小
$http_referer 上一个跳转页面
$http_user_agent 客户端浏览器
$request_time 请求处理时间
2)access_log
语法:
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;
案例:
server {
listen 80;
server_name www.a.com a.com;
error_log /vhosts/web1/logs/error_log;
access_log /vhosts/web1/logs/access_log;
if ( $http_host != "www.a.com" ){
rewrite ^/(.*)$ http://www.a.com/$1 permanent;
}
location / {
root "/vhosts/web1";
index index.html index.htm;
}
[root@static logs]# /usr/local/nginx/sbin/nginx -s reload
[root@static logs]# ll
total 4
-rw-r--r--. 1 root root 0 Dec 15 15:31 access_log
-rw-r--r--. 1 root root 194 Dec 15 14:50 error_log
查看
[root@static logs]# tail access_log
10.2.18.231 - - [15/Dec/2017:15:34:46 +0800] "GET / HTTP/1.1" 200 18 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
三)open_log_file_cache
语法:
Syntax: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
Default:
open_log_file_cache off;
对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭
功能: 定义一个缓存,存储常用日志的文件描述符,这些日志的名称包含变量
max: 设置缓存描述符的最大数量
inactive: 设置在此期间没有访问的缓存描述符
min_uses: 设置在inactive时间内,日志文件最少使用多少次后,该日志文件描述符记录缓存中,默认为1次
valid:设置检查频率 默认60s
案例:
open_log_file_cache max=1000 inactive=20s min_uses=2 valid=1m;
四)Nginx日志切割配置
默认情况Nginx会把所有访问日志生成到一个指定的访问日志文件access.log,但如果这样,时间久了就会导致日志文件非常庞大,不利于日志的分析和处理,因此有必要对nginx日志,按天和小时进行切割,分成不同的文件保存
#!/bin/bash
Date=`date +%F`
InstallDir="/usr/local/nginx"
NginxLogDir="/vhosts/web1/logs"
LogName="access_a"
#####
[ -d $NginxLogDir ] && cd $NginxLogDir || exit 1
[ -f ${LogName}.log ]|| exit 1
#Cut logs by day
/bin/mv ${LogName}.log ${LogName}_${Date}.log
$InstallDir/sbin/nginx -s reload
#Delete logs 7 days ago
find . -ctime +7 -name "*.log"|xargs rm -f
00 00 * * * /bin/bash /server/scripts/cut_nginx_log.sh >/dev/null 2>&1
1)分析截止到目前,当天访问量最高的ip排行
[root@test logs]# awk '{print $1}' 91als.access_2017-12-15.log | sort |uniq -c|sort -nr|head -10
42636 "106.120.160.75"
40419 "106.120.161.65"
368 "101.226.162.89"
363 "125.88.222.250"
335 "123.125.80.235"
278 "113.89.70.105"
276 "144.76.8.134"
232 "113.89.68.65"
194 "106.120.168.109"
2)分析从早上9点至中午12点总的访问量
sed -n "/2017:09:00/,/2016:12:00/"p access_log|wc -l
3) 找出当前日志中502或者404错误的页面并统计
- 第一部分:Nginx Web服务
- 第一章: Nginx的初探
- 第二章:Nginx的安装部署
- 第一节:在centos6上通过Yum安装Nginx
- 第二节:在Centos7上通过Yum安装nginx
- 第三节:编译安装Nginx服务
- 第四节: Nginx编译参数详解
- 第五节: Nginx的启动脚本
- 第六节:Nginx的shell脚本安装
- 第七节:nginx服务的平滑升级
- 第三章:Nginx服务基础配置
- 第一节: 配置运行nginx服务器用户
- 第二节:配置运行生成的worker processes进程数
- 第三节:配置Nginx进程PID存放路径
- 第四节:定义MIME类型
- 第五节:自定义nginx的访问日志
- 第六节:主配置段(main)常用的配置
- 第七节:http段(核心)常用的配置命令
- 第八节:配置nginx中的location段
- 第九节: 基于IP的访问控制
- 第十节:基于用户的访问控制
- 第十一节:Nginx定义status状态页
- 第十二节:Nginx服务器Rewrite重写
- 第十三节:Nginx服务配置防盗链
- 第十四节:nginx软件的优点
- 第四章:Nginx服务器的优化配置
- 第一节:nginx.conf配置文件基本参数优化
- 第二节:fastcgi调优
- 第三节:Gzip调优
- 第四节:expires缓存调优
- 第五节:内核参数优化
- 第六节: Nginx之——413 修改上传文件大小限制
- 第五章:Nginx虚拟主机的配置
- 第一节:基于名称的虚拟主机
- 第二节:通过shell脚本添加虚拟主机
- 第六章:Nginx常用模块指令详解
- 第一节:ngx_http_realip_module
- 第二节:http_image_filter_module
- 第三节:tengine中配置consistent hash module
- 第四节:ngx_http_userid_module
- 第七章:Nginx服务器配置HTTPS访问
- 第八章: Nginx服务器日志切割
- 第二部分:Nginx负载均衡反向代理服务
- 第一章:Nginx进阶参数详解
- 第一节:proxy_module参数详解
- 第二节:upstream_module参数详解
- 第四章:Nginx反向代理服务
- 第一节:Nginx反向代理配置参数详解
- 第二节:Nginx反向代理服务配置案例
- 第三节:Nginx缓存
- 第四节: Nginx中fastcgi模块
- 第五节:nginx+fastcgi实现动静分离架构
- 第五章:Nginx负载均衡
- 第一节:ngx_http_upstream_module常见指令
- 第二节:调度方法
- 第三节:健康状态检查