ipv6导致网站延迟2秒响应

日志  ·  2025-06-07

真是被折磨得够呛!从6月4号那天我重装了阿里云ECS的系统开始,网站的访问总是会卡顿几秒。浏览器加载页面时,那个“正在等待服务器响应”动不动就飙到2~4秒以上,简直要命!

网站服务器等待响应2秒+▼

阿里云这重装系统,实质上是给你分配一个全新ECS实例,装的你选的那个系统版本。我之前的老实例跑在旧物理机上,阿里工程师已证实我现在的机器已经不是以前的物理机上了。期间还给我迁移到别的机器上问题依旧。

接下来的几天提工单跟阿里云技术小哥一直研究怎么回事,授权了工程师进入系统排查。我这边呢?把能想到的、能检查的都折腾了个遍,毫无头绪。

网站整个拷贝到腾讯云服务器打开网站不会等待2秒▼

昨天我把整个网站打包,拷贝到腾讯云的一台服务器上。配置好打开网页请求响应嗖嗖的,直接干到毫秒(ms)级别!这下可以确定网站代码是没有问题的。

既然代码没问题,那我估计是新ECS的环境哪里被我搞岔了。今晚我豁出去了,又把阿里云那台ECS系统重装了一遍。,所有软件一个一个装生怕哪里配置搞错了。鼓捣了一个多小时,感觉稳了!搓搓手地打开浏览器,F12... 完犊子!那熟悉的2秒+等待响应,它又双叒叕回来了!心凉了半截。

不死心啊!hosts文件?翻了个底朝天,干干净净。阿里那边建议抓包,抓了,导出日志给他们看,回复依然是:“看起来没啥异常”。这这这。。。。!

正准备放弃时突然一个念头蹦出来网站代码没问题,但打开网站要连数据库啊!那个数据库连接字符串... 我把原本写的localhost改成127.0.0.1保存,刷新页面“80ms!!!”页面瞬间加载完成!我简直不敢相信自己的眼睛!

网站恢复ms级▼

赶紧上网搜!果然localhost它同时指向IPv4的127.0.0.1和IPv6的::1。问题就出在这里:如果我的数据库服务(比如MySQL)没有监听IPv6的::1地址,当程序尝试用localhost连接时,系统会先尝试IPv6(::1)。连接失败它不会立刻放弃,而是傻傻地等待一个超时2秒左右,之后才去尝试IPv4的127.0.0.1。这一等,就是那要命的2秒+延迟!而我那台新装的阿里云ECS,默认是启用了IPv6的,完美踩中了这个坑。

就是一个小小的localhost修改解决问题▼

谁能想到,困扰我好几天,差点让我怀疑人生的服务器响应延迟,罪魁祸首竟然是小小的localhost和IPv6回退机制!。分享出来,希望能帮到同样在坑里挣扎的兄弟!

 

恢复正常的测速

 
版权属于: 全局变量

 

评论  (评论须知)
Yang
Yang

感觉你今天成就感荣耀值会比较高,哈哈

全局变量
全局变量

那是、那是!😎

acevs
acevs

你这数据库密码啥的都明文显示了。嘿嘿。

全局变量
全局变量

没事,测试用的随机码,现在都已经删除了。

皇家元林
皇家元林

有时候我打开网址好像也有卡顿的时候,不知道是不是这种情况。不过总的还好。

全局变量
全局变量

我去看看。

石樱灯笼
石樱灯笼

阿里云的工程师啥毛病都查不出来简直是日常的写照。

全局变量
全局变量

没有功能有苦劳

石樱灯笼
石樱灯笼

随便点点鼠标就能领巨额工资。

似水流年
似水流年

既然支持了ipv6,下一步就要支持HTTP3了。

全局变量
全局变量

好多年不关注web技术,现在都http3啦