目录
1 问题描述
Nginx 连接日志中显示都是同一个IP,导致session异常。
10.0.6.6 - - [09/Sep/2019:18:16:41 +0800] "GET /plan/api/statistics/plan/download HTTP/1.1" 502 581 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
10.0.6.6 - - [09/Sep/2019:18:26:19 +0800] "GET /alarm/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 404 159 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:26:53 +0800] "GET /alarm/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 404 159 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:27:02 +0800] "GET /alarm/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 404 159 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:27:43 +0800] "GET /alarm/api/alarm/history HTTP/1.1" 500 318 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
10.0.6.6 - - [09/Sep/2019:18:28:13 +0800] "GET /test/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 500 199 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:38:25 +0800] "GET /favicon.ico HTTP/1.1" 200 1150 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3730.400 QQBrowser/10.5.3805.400"
[root@kvm01-pre logs]# tail access.log
10.0.6.6 - - [09/Sep/2019:18:08:16 +0800] "GET /alarm/api/alarm/RabbitMQToAlarm HTTP/1.1" 405 193 "-" "Mozilla/4.0 (compatible; ms-office)"
10.0.6.6 - - [09/Sep/2019:18:09:15 +0800] "GET /robot/rest/tasks HTTP/1.1" 405 337 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
10.0.6.6 - - [09/Sep/2019:18:16:39 +0800] "GET /alarm/api/alarm/history/export HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
10.0.6.6 - - [09/Sep/2019:18:16:41 +0800] "GET /plan/api/statistics/plan/download HTTP/1.1" 502 581 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
10.0.6.6 - - [09/Sep/2019:18:26:19 +0800] "GET /alarm/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 404 159 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:26:53 +0800] "GET /alarm/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 404 159 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:27:02 +0800] "GET /alarm/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 404 159 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:27:43 +0800] "GET /alarm/api/alarm/history HTTP/1.1" 500 318 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36"
2 问题定位
2.1 确认IP所属设备类型
找任意一台主机ping 一下 ,发现ping 主机都是通的,但是ping 10.0.6.6不通,确认10.0.6.6不是主机。所有的主机在安装操作系统的时候都关闭的了防火墙,可以排除是防火墙的问题。
[root@kvm09-pre ~]# ping 10.0.6.6
PING 10.0.6.6 (10.0.6.6) 56(84) bytes of data.
^Z
[1]+ Stopped ping 10.0.6.6
[root@kvm09-pre ~]# ping 10.0.10.216
PING 10.0.10.216 (10.0.10.216) 56(84) bytes of data.
64 bytes from 10.0.10.216: icmp_seq=1 ttl=64 time=0.554 ms
64 bytes from 10.0.10.216: icmp_seq=2 ttl=64 time=0.426 ms
64 bytes from 10.0.10.216: icmp_seq=3 ttl=64 time=0.398 ms
2.2明确数据流向和测试环境
2.2.1测试环境网络,
PC可以连接AP热点、小型wifi路由器 或者H3C前置路由器来访问web服务。现在绝大多数测试人员都是通过小型无线路由器或者直连H3C前置路由器登录web服务,少部分会通过AP热点。
2.2.2 简单测试定位问题
每个前端设备通过AP连接web主机 都会通过 DHCP获取新的IP。简单访问web 服务时,Nginx记录的IP是会变化的。如下日志:
10.0.6.6 - - [09/Sep/2019:18:28:13 +0800] "GET /test/api/test/alarm?alarmId=605899143744077824 HTTP/1.1" 500 199 "-" "PostmanRuntime/6.4.1"
10.0.6.6 - - [09/Sep/2019:18:38:25 +0800] "GET /favicon.ico HTTP/1.1" 200 1150 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3730.400 QQBrowser/10.5.3805.400"
10.0.10.216 - - [09/Sep/2019:19:25:12 +0800] "GET /login HTTP/1.1" 200 4848 "-" "curl/7.29.0"
10.0.10.112 - - [09/Sep/2019:20:16:09 +0800] "GET /login HTTP/1.1" 200 4848 "-" "curl/7.29.0"
但是通过小型无线路由器 和H3C前置路由器 访问web服务都时,Nginx记录的IP都是 10.0.6.6。
结论
小型无线路由器是无法通过配置修改报文的IP的。基本确认是H3C前置路由器配置问题。