头图

本文已收录在Github关注我,紧跟本系列专栏文章,咱们下篇再续!

  • 🚀 魔都架构师 | 全网30W技术追随者
  • 🔧 大厂分布式系统/数据中台实战专家
  • 🏆 主导交易系统百万级流量调优 & 车联网平台架构
  • 🧠 AIGC应用开发先行者 | 区块链落地实践者
  • 🌍 以技术驱动创新,我们的征途是改变世界!
  • 👉 实战干货:编程严选网

1 安装Nginx

最近想使用云服务器来部署自己的web应用。

yum install nginx

2 尝试启动Nginx

安装nginx后,用命令service nginx start 启动时报错:

[root@sss sbin]# sudo service nginx start  
Starting nginx: nginx: [emerg] socket() [:]:80 failed (97: Address family not supported by protocol)  
                                                                        [FAILED]

错误表明Nginx在尝试监听80端口时遇到了问题。Address family not supported by protocol,通常与IPv6相关。

3 定位问题源

找到nginx的默认配置文件:

vim /etc/nginx/conf.d/default.conf
#
# The default server
#

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

}

配置文件包含6、7两行关于监听80端口的指令,其中listen [::]:80 default_server;是用于监听IPv6的。

将如下部分注释:

listen       [::]:80 default_server;

因为错误提示可能与服务器不支持IPv6或者Nginx配置了监听IPv6但实际环境不支持有关。注释后,Nginx将不再尝试监听IPv6地址。

4 重启Nginx

重启,成功!

[root@sss sbin]# sudo service nginx start  
Starting nginx:                                                         [ OK ]

JavaEdge
374 声望417 粉丝