同一IP手机访问WEB网站后PC出现短暂无法正常访问的情况?
运维日记排查和记录时间是: 2021.1.20 凌晨3点.
前提环境:
1.服务器为阿里云Linux CentOS8系统
2.WEB服务器为Nginx服务器
3.防火墙为Iptables,selinux和firewalld已关闭
4.有Fail2ban和Ddos环境
一.第一阶段排查
这个问题属于运维问题,排查起来确实不好排查,刚开始以为是客户端内部局域网环境或客户端局域网路由器设置的有问题导致的,经过在centos8下通过日志跟踪和tcpdump详细观察tcp通讯数据和三次握手状态,并没有发现任何异常.
tcpdump -i eth0 host 118.5.7.80 -nn #抓取tcp三次握手信息
二.第二阶段排查
我在想有没有可能是安全设计过于严格了,所以就开始检查Fail2ban基于日志的高级防火墙,发现关闭后客户端问题照旧.
systemctl stop fail2ban.service #关闭fail2ban服务
pstree |grep fail2ban #已关闭
三.第三阶段排查
有可能是ddos-deflate安全设计过于严格了,关闭后客户端问题照旧.
systemctl stop ddos.service #关闭ddos服务
pstree |grep ddos #进程已关闭
四.第四阶段排查
有可能是iptables防火墙某些基于状态的防火墙策略有问题,清除INPUT链,并把INPUT链的默认策略设置为ACCEPT,但问题照旧.
iptables -P INPUT ACCEPT
iptables -F INPUT
最后发现还是不行,但通过tcpdump来推测有可能centos服务器建立起来的通讯没有问题,说明tcp数据已经进入服务器,那就有可能是web服务器nginx配置有问题了或者nginx调用的php-fpm反应有问题.
五.第五阶段开始排查nginx配置经过大量测试发现问题
cat /usr/local/nginx/conf/nginx.conf
client_header_buffer_size 4k;
open_file_cache max=102400 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 1;
client_header_timeout 15;
client_body_timeout 15;
reset_timedout_connection on;
send_timeout 15;
server_tokens off;
发现把这一块的旧优化设置删除掉客户端情况消失,这块代码之前是非常有用的针对有用户在手机和PC上同时刷WEB,但现在却影响一个IP的多PC和手机用户同时在云知梦平台上进行课程学习,所以有些性能调优需要根据实际情况和阶段而定,到这儿问题解决.随后把上面的关闭的服务或防火墙全部正常开启.
六.大家想学习更详细的Nginx技术和优化配置可参考我亲自录制的LNMP高性能商用架构课程:
1 COMMENT