标签:配置文件 window cti 优化 form 技术 user forward http
在成功安装nginx后,我们通过nginx的配置文件(nginx.conf),可以看到nginx日志的格式及存放位置。首先我们这里根据一条日志及配置文件中的日志格式来解读下日志内容的具体含义
101.38.162.61 - - [27/Apr/2018:14:03:40 +0800] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 58 "http://39.105.23.127/wp-admin/widgets.php" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" "-"
① $remote_addr 远程连接地址,即请求者的ip(即101.38.162.61)如果有前端,则此处的ip是代理服务器的ip地址
② $remote_user 远程连接的用户,此处为空白,因其是匿名的,即第二个- ,
此处有两个--,然而第一个-对应日志格式中的-
③ [$time_local] 服务器本地时间(即27/Apr/2018:14:03:40 +0800)
④ "$request" 请求的协议及方法及请求的目录(即:用的HTTP1.1协议以post方法请求的/wp-admin/admin-ajax.php目录)
⑤ $status 状态码,这里的状态码是200
⑥ $body_bytes_sent 发送给客户端的字节数,不包括响应头的大小,这里是58字节
⑦ $http_referer 告诉服务器该请求来自哪里
这里的请求来自http://39.105.23.127/wp-admin/widgets.php
⑧ $http_user_agent 浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码 即对应得"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36".
⑨ $http_x_forwarded_for" 是一个 HTTP 扩展头部,用来表示 HTTP 请求端真实 IP,这里为空,因为该架构没有使用代理服务器,真实ip是$remote_addr,所以此处为空
⑩ 注:此处是默认的日志格式,我们可以根据需要自行添加和删减,例如$bytes_sent发送给客户端的总字节数;$connection_requests 当前通过一个连接获得的请求数量; $request_time 请求处理时间,单位为秒; $request_length请求的长度等。
我们可以利用AWK工具,结合日志文件中的条件过滤出我们需要ip
1、分析截止目前为止访问量最高的ip排行
awk ‘{print $1}‘ host.access.log |sort |uniq -c|sort -nr |head -20
过滤出hos.access.log日志文件中访问量前20的ip
sort 将文件进行排序,并将排序结果标准输出
uniq -nr 去重并在右边显示重复出现的次数
sort -nr -n依照大小来排序,-r倒序
2、找到当前日志中对应状态码的错误页面来统计,比如502
awk ‘{print $0}‘ host.access.log |grep ‘502‘ |awk ‘{print $1,$7,$9}‘
这里的 {print $0} |grep 502 是指从所有内容中过滤出带有502的行,交给后面处理
3、在日常生产中难免会碰到cc攻击。例如对服务器发送大量head请求,占用连接数,导致服务器不能提供正常的访问,我们可以通过对日志文件分析,参考方法1,过滤出异常ip请求,然后写自动脚本,达到防火墙进行限制80端口访问
4、当然也可以过滤出日志文件中其他的参考,比如请求的大小请求的连接数等,进步加强对网站架构的掌握,做到进步优化
标签:配置文件 window cti 优化 form 技术 user forward http
原文地址:https://www.cnblogs.com/zoer/p/13016080.html