事件前夕
由于web服务器nginx版本有点低,并且还在用http1.1,在内网环境部署1.23版本的nginx并配置http2测试无误后随即将云服务器的nginx进行更新;
引发的问题
更新过后网页访问异常缓慢,图片等静态资源直接无法加载,清空nginx缓存也无法解决随即查看日志:
cat /opt/nginx/logs/error.log
打印出来:
2022/09/02 23:23:06 [error] 31288#31288: *11 connect() failed (113: No route to host) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: rainblog.cn, request: "GET /themes/codelunatic_simple1/source/webfonts/fa-solid-900.woff2 HTTP/1.1", upstream: "http://[ipv6]:port/themes/codelunatic_simple1/source/webfonts/fa-solid-900.woff2", host: "www.rainblog.cn", referrer: "https://www.rainblog.cn/page/1"
什么情况怎么把数据服务器域名解析成ipv6了?突然想起之前数据服务器升级到了动态ipv6,dns自动解析到ipv6上去了,但web应用服务器并不支持ipv6导致网页无法正常加载;
问题的解决
之前写过 博客服务器Nginx访问优化,在里面有个dns缓存配置,通过这个配置可以禁用ipv6,随即进行以下操作:
resolver 8.8.8.8 valid=300s ipv6=off;
在后面加入ipv6=off然后重启nginx,web加载慢的问题解决,并且升级到http2,浏览器禁用缓存可以做到400ms内加载完毕,虚惊一场差点回滚了~