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 ]