今天在业务系统中发现一个POST请求的响应时间非常长,足足有122秒,如下图是打印curl的详细信息:
而请求其他URL的响应速度是正常的,期初怀疑是对方URL系统的问题,但在其他服务器里请求这个URL速度又是正常的,所以基本可以肯定是本机的网络配置问题。
经过一番折腾以及向服务器运营商提交工单,得出的原因是请求该地址时优先解析了ipv6,而服务器未开启ipv6带宽故等待时间较长,所以我们需要设置服务器优先使用ipv4进行解析。
方法一:降低 IPv6的优先级,优先使用IPv4。
默认的安装中,IPV4 和 IPV6 并存,并且 IPV6 却优先于 IPV4。如果不需要彻底关闭 IPV6,可以设置让 IPV4 优先于 IPV6。配置方式如下:
echo "precedence ::ffff:0:0/96 100" >>/etc/gai.conf
当然也可以直接修改 /etc/gai.conf 文件,增加下面这一行或取消注释就可以
precedence ::ffff:0:0/96 100
我使用的就是这个方法解决了。
方法二:设置 GRUB 启动参数禁用 IPv6
编辑 /etc/default/grub,找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"
随后执行命令 update-grub 更新 grub 启动参数,重启系统即可。
本帖已被设为精华帖!