質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.05%

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 4,775

score 806

さくらVPS上のUbuntu Serverで、Webアプリを動かそうとしました。
アプリはDjangoで作成しており、nginxとgunicornで動かそうとしています。

しかし、nginxを動かそうとした所で下記エラーが出ました。

sudo nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

http://hacknote.jp/archives/15044/
上記サイトでも、同じ事象を紹介されていましたので、それを参考にして下記のとおりにしてみました。

sudo netstat -lnp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4558/nginx: master
tcp6 0 0 :::80 :::* LISTEN 4558/nginx: master


試しに、tcpを止めようと下記のとおりしてみましたが、できませんでした。

sudo service tcp stop
Failed to stop tcp.service: Unit tcp.service not loaded.

そもそも他のソフトをインストールしようとしている時に、下記のエラーが生じていました。

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
invoke-rc.d: initscript nginx, action "start" failed.
dpkg: error processing package nginx-full (--configure):
subprocess installed post-installation script returned error exit status 1
Setting up python-six (1.10.0-3) ...
Setting up python-iniparse (0.4-2.2) ...
Setting up yum-utils (1.1.31-3) ...
Errors were encountered while processing:
nginx-full
E: Sub-process /usr/bin/dpkg returned an error code (1)

そこで、systemctl status nginx.serviceを実行しました。

systemctl status nginx.service
● 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 Mon 2016-08-15 21:29:04 JST; 52min ago
  Process: 5165 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 5162 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 3962 (code=exited, status=0/SUCCESS)

Aug 15 21:29:03  nginx[5165]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Aug 15 21:29:03  nginx[5165]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Aug 15 21:29:03  nginx[5165]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Aug 15 21:29:04  nginx[5165]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Aug 15 21:29:04  nginx[5165]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Aug 15 21:29:04  nginx[5165]: nginx: [emerg] still could not bind()
Aug 15 21:29:04  systemd[1]: nginx.service: Control process exited, code=exited status=1
Aug 15 21:29:04  systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Aug 15 21:29:04  systemd[1]: nginx.service: Unit entered failed state.
Aug 15 21:29:04  systemd[1]: nginx.service: Failed with result 'exit-code'.

どこに手がかりがあるかも分からないので、エラー文をできるだけ全部掲載しました。長文になり申し訳ございません。

どこに問題がありそうかお分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

netstat -lnp | grep 80
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)

この警告をみると、ほかのユーザーで起動されたものが見えない状態のようです。
root権限で実行するためにsudoをつけてみたらどうなりますか?

sudo netstat -lnp | grep 80

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/15 23:32

    あ、nginxが既に動いてるから追加で起動できない感じなんですね。
    だからサービス見ていたわけですね。失礼しました。
    psコマンドでプロセス見た場合はどうなるでしょうか。
    `sudo ps -ef | grep nginx`

    あと、ブラウザかcUrlで http://127.0.0.1 にアクセスしたらページは表示されますか?
    `cUrl http://127.0.0.1`

    キャンセル

  • 2016/08/16 10:43

    遅くなってすみません。

    sudo ps -ef|grep nginx
    root 4558 1 0 Jun24 ? 00:00:00 nginx: master process nginx
    www-data 5245 4558 0 Jun24 ? 00:00:07 nginx: worker process
    myname+ 7552 7512 0 10:38 pts/0 00:00:00 grep --color=auto nginx

    となりました。(上記mynameは、置き換えています)
    また、
    curl http://127.0.0.1
    <html>
    <head><title>502 Bad Gateway</title></head>
    <body bgcolor="white">
    <center><h1>502 Bad Gateway</h1></center>
    <hr><center>nginx/1.10.0 (Ubuntu)</center>
    </body>
    </html>

    となりました。

    キャンセル

  • 2016/08/17 14:57

    最終的に下記の方法で直りました。

    $ sudo kill -SIGTERM 4558 # プロセスを終了させる

    $ sudo netstat -lnp | grep 80
    プロセスが終了したことを確認

    $ sudo nginx -g 'daemon off;' # 一度フォアグラウンドでnginxが起動できることの確認(Ctrl+Cで終了)

    $ sudo systemctl start nginx.service # 起動

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る