Nginxで「 [emerg] bind() to 0.0.0.0:80 failed 」と出力される原因と対処

スポンサーリンク

AWS EC2の「Ubuntu Server(Ubuntu 22.04)」インスタンス上にNginxをインストールし起動すると、下記のエラーが発生する場合がある。

 nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2022-07-16 03:11:21 UTC; 11min ago
       Docs: man:nginx(8)
    Process: 3724 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, stat
    Process: 3725 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAIL
        CPU: 8ms

Jul 16 03:11:19 ip-172-31-23-63 nginx[3725]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown err
Jul 16 03:11:19 ip-172-31-23-63 nginx[3725]: nginx: [emerg] bind() to [::]:80 failed (98: Unknown error)
Jul 16 03:11:20 ip-172-31-23-63 nginx[3725]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown err
Jul 16 03:11:20 ip-172-31-23-63 nginx[3725]: nginx: [emerg] bind() to [::]:80 failed (98: Unknown error)
Jul 16 03:11:20 ip-172-31-23-63 nginx[3725]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown err
Jul 16 03:11:20 ip-172-31-23-63 nginx[3725]: nginx: [emerg] bind() to [::]:80 failed (98: Unknown error)
Jul 16 03:11:21 ip-172-31-23-63 nginx[3725]: nginx: [emerg] still could not bind()
Jul 16 03:11:21 ip-172-31-23-63 systemd[1]: nginx.service: Control process exited, code=exited, status=1
Jul 16 03:11:21 ip-172-31-23-63 systemd[1]: nginx.service: Failed with result 'exit-code'.
Jul 16 03:11:21 ip-172-31-23-63 systemd[1]: Failed to start A high performance web server and a reverse

この原因を調べてみると、すでにHTTPポート80にバインドされた(紐づけられた)プロセスがあり、これが原因となりエラーが発生している場合がある。今回、私がAWS EC2で作成した「Ubuntu Server(Ubuntu 22.04)」インスタンス上にApache Webサーバーもインストールしており、それが実行中であった。これが原因と判断した。

$ sudo service apache2 stop

判断したため、上記のコマンドを入力し、Enterキーを押します。Apache Webサーバーの実行を停止する。

$ sudo service nginx restart

Enterキーを押すと、Apache Webサーバーが停止となる。その後、上記のコマンドを入力し、Enterキーを押します。Nginxを再起動する。

$ sudo systemctl status nginx

Enterキーを押すと、Nginxが再起動となる。その後、上記のコマンドを入力し、Enterキーを押します。Nginxの状態を出力する。

??ginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-07-16 03:30:03 UTC; 11s ago
Docs: man:nginx(8)
Process: 3960 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, sta>
Process: 3961 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUC>
Main PID: 3962 (nginx)
Tasks: 2 (limit: 1146)
Memory: 2.5M
CPU: 21ms
CGroup: /system.slice/nginx.service
??3962 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
??3963 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "">

Jul 16 03:30:03 ip-172-31-23-63 systemd[1]: Starting A high performance web server and a reverse proxy >
Jul 16 03:30:03 ip-172-31-23-63 systemd[1]: Started A high performance web server and a reverse proxy s>

Enterキーを押すと、上記のメッセージが出力される。出力された内容を確認すると、先程は「Active: failed (Result: exit-code)」と出力されていたが、今度は「Active: active (running)」とActiveが変更されており、正常に実行されていることが確認できました。

コメント

タイトルとURLをコピーしました