症状
日志中时不时出现错误记录:
connect() to [::1]:XXXX failed (101: Network is unreachable) while connecting to upstream
原因
1、nginx 转发到上游服务器时。nginx 有时候会使用 ipv6 协议,然而没能用ipv6成功连接到上游服务器
2、也可能是上游服务器瘫痪了。
处理
第二点不在这里的讨论范围。
第一种方式:在配置上游服务器时。如果不是配置域名,而是ipv4 的 ip 地址则直接解决了。
…
因为直接给 ipv4 的 ip 地址,不是localhost 这种需要解析的域名,不通过DNS解析就不会得到 ipv6 的ip地址。所以就不会尝试连接 ipv6 的地址,进而不会引发了这个错误!
第二种方式:因为是尝试连接 ipv6 地址,那么上游启用 ipv6 协议支持也是可行的,当然需要服务器支持。另外如果是外网访问,如果是买的服务器,需要注意服务器提供商也许需要对 ipv6 协议流量收费!