十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最近做项目的时候发现一个问题,网站打开的时候,一停的在转,大概5分钟以后返回504网关超时
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的平利网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!当时第一反应是我的网络架构出问题了,于是从前端LVS一直往下查,我的架构是LVS+NGINX+TOMCAT,一直到nginx这块都没问题,从nginx的错误日志也看不出什么,同样的报504网关超时,当时就在想502坏的网关是以为nginx把请求抛给tomcat的时候找不到tomcat的端口,504会不会也一样呢?
[root@web1 ~]# netstat -lntup|grep 800
tcp 0 0 :::8000 :::* LISTEN 4208/java
tcp 0 0 :::8002 :::* LISTEN 4208/java
没看出什么问题,再与线上服务器对比的时候找到问题
[root@web1 ~]# netstat -lntup|grep 800
tcp 0 0 :::8000 :::* LISTEN 4208/java
tcp 0 0 ::ffff:127.0.0.1:8001 :::* LISTEN 4208/java
tcp 0 0 :::8002 :::* LISTEN 4208/java
发现tomcat少了一个端口,为什么没会导致这个问题呢?
查看tomcat日志,发现tomcat没起来,一直卡在连接连接数据库那块
于是我在web端查看mysql端口,发现能通
[root@web2 server]# telnet 10.10.0.126 3306
Trying 10.10.0.126...
Connected to 10.10.0.126.
Escape character is '^]'.
^]
telnet> \q
Connection closed.
到这里发现自己的思路断了!!
峰回路转,无意中在db2上查看了一下mysql端口,发现和在web上的结果不一样
[root@db2 root]# telnet 10.10.0.126 3306
Trying 10.10.0.126...
Connected to 10.10.0.126.
Escape character is '^]'.
N
5.5.32-log0pKhJw=db!>MIgIxAwW,s"mysql_native_password
这是为什么呢?
于是一点点的回忆,思考web和db的区别,最后终于找到问题所在
10.10.0.126和10.10.0.127是我数据的读vip和写vip,只有这两台机器才有10.10.0.0网段的ip
web上只有一个外网ip,于是route -n查看了一下web和db的网关
[root@web1 server]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.192.168.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth2
0.0.0.0 202.192.168.1 0.0.0.0 UG 0 0 0 eth2
[root@db2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.192.168.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 202.192.168.1 0.0.0.0 UG 0 0 0 eth0
很明显,web上缺少10.10.0.0的网关
于是在web端添加了一个网关
route add -net 10.10.0.0 netmask 255.255.255.0 dev eth2
再查看一下
[root@web1 server]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.192.168.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth2
0.0.0.0 202.192.168.1 0.0.0.0 UG 0 0 0 eth2
已经和db端一样了
查看一下mysql端口
[root@web1 server]# telnet 10.10.0.126 3306
Trying 10.10.0.126...
Connected to 10.10.0.126.
Escape character is '^]'.
N
5.5.32-log±vj3[SkES!Q{9H=9E0]fjamysql_native_password
成功啦!!!!!
重启tomcat,查看tomcat端口
[root@web1 server]# netstat -lntup|grep 800
tcp 0 0 :::8000 :::* LISTEN 4208/java
tcp 0 0 ::ffff:127.0.0.1:8001 :::* LISTEN 4208/java
tcp 0 0 :::8002 :::* LISTEN 4208/java
端口起来啦
页面访问也正常了!!!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。