问题现象
服务器操作系统中安装 nginx服务,启动 nginx 时遇到如下 Address family not supported by protocol 报错信息:
问题原因
根据报错信息,nginx 在 ipv6 地址 [::] (对应 ipv4 中的 0.0.0.0)的 80 端口启动服务失败,先查看网络是否开启了 ipv6,根据 ip add 命令的输出可以看到系统并不存在 ipv6 地址:
解决方案
以下提供两种解决方案供参考~
方案一:在系统中开启 ipv6 协议
首先需要确定系统关闭ipv6的方法,一般为修改grub文件中的内核参数。
1. 编辑 /etc/default/grub,删除“ipv6.disable=1”配置项
2.重新生成grub.cfg文件
根据启动方式不同,具体命令不同:
# BIOS启动
grub2-mkconfig -o /boot/grub2/grub.cfg
# EFI启动
grub2-mkconfig -o /boot/efi/EFI/UnionTech/grub.cfg
3. 重启系统,显示 ipv6 已经启用
4. 重启nginx服务,正常运行
方案二:禁用nginx的ipv6的部分
1. 修改 nginx 配置文件,注释掉与 ipv6 相关的配置项
修改 /etc/nginx/nginx.conf (根据操作系统的不同,对应的配置文件也可能是 /etc/nginx/conf.d/default.conf、/etc/nginx/sites-available/default,根据具体配置文件进行修改)
2. 重启 nginx 服务,正常运行
©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。