Ubuntu

Ubuntu 18.04 に apt で Nginx をインストールしたら “[emerg] socket() [::]:80 failed (97: Address family not supported by protocol)”

IPv4 環境なのに IPv6 の設定があるために発生します。/etc/nginx 下に ":80" の記述があるファイルがないか grep してみます。

$ grep -R ":80" /etc/nginx/*
sites-available/default: listen [::]:80 default_server;
sites-available/default:# listen [::]:80;
sites-enabled/default: listen [::]:80 default_server;
sites-enabled/default:# listen [::]:80

ありました。Debian のお作法的に /etc/nginx/sites-enable/default => /etc/nginx/sites-available/default のシンボリックリンクになっているはずなので sites-available/default を編集します。

$ sudo vi /etc/nginx/sites-available/default
.....
listen 80 default_server;
- listen [::]:80 default_server;
+ # listen [::]:80 default_server;
.....

"listen [::]:80 default_server;" をコメントアウトして保存します。

Nginx が正常に起動するか確認します。

$ sudo systemctl start nginx