最近为了制作一个Docker镜像,在本地电脑上通过虚拟机安装了CentOS,顺便通过宝塔面板安装了阿里系的WEB环境。安装好以后Nginx始终无法启动,报错:nginx: [emerg] invalid IPv6 address in resolver。
具体错误如下图所示:
爱主机评测网,最优惠主机信息推荐,便宜VPS分享,香港CN2
简单的看了下错误原因,在于Tengine开启了ipv6的监听,但是找nginx.conf第88行并未找到关于IPV6的配置参数。看来这个问题不能通过配置文件来解决。
然后通过SSH登陆虚拟机,输入:“nginx -V”排查,发现编译参数中包含“–with-ipv6”于是进入到Tengine的源码目录,重新编译,把ipv6的编译参数去掉。最终发现还是不能运行。
一步一步排查原因,直到把系统ipv6配置禁用之后,问题最终解决了。
解决步骤:
1、vi /etc/sysconfig/network-script/ifcfg-ens33 (有一部分人的网卡配置不是这个文件,可以先通过ip addr查看下网卡名称)
2、将文件中“IPV6INIT=no”“IPV6_AUTOCONF=no”修改后保存退出。
3、重启网络服务。service network restart
4、启动Nginx。大功告成!
除了波波分享的这个解决方法之外,网上也有人说把/etc/resolve.conf文件中的IPV6地址那一行删掉。无所谓,解决问题就好。当然了除了这个方法之外,也可以通过把虚拟机IPV6调通来解决。不过本地电脑,感觉没有必要浪费时间。