Centos 7 nginx は IP をバインドした後にシステムを起動できず、bind() が失敗したと表示されます
PHPz
PHPz 2017-05-16 17:25:18
0
1
756

テスト用に新しい仮想マシンを特別に作成しました。この仮想マシンには、a.a.a.a と b.b.b.b の 2 つの IP があります。nginx が a.a.a.a:80 のみをリッスンすることを願っています。
ただし、指定されたリスニング IP listen a.a.a.a:80; が構成ファイルに設定されてシステムが再起動されると、nginx は起動に失敗し、エラー Starting nginx: [emerg]: binding を報告します。 () to a.a.a.a failed (99: Cannot assign requested address) となりますが、この時は手動で systemctl start nginx を実行すれば正常に起動できます。
構成ファイル内の IP listen 80; を削除してシステムを再起動すると、nginx が正常に起動できるようになります。
要約:
リスニングIPを指定した後、システムでサービスを自動的に開始することはできませんが、手動でサービスを開始して正常に使用できます。
リスニング IP を指定しない場合、サービスはシステムによって自動的に開始され、正常に動作します。

この状況を解決するにはどうすればよいですか?

一時的な解決策については、この投稿のコメントを参照してください (デフォルトでは展開されていません)
推測される理由は、nginx がバインドする IP を検出する必要があるが、システムが検出時に値を返さないか、検出時間が速すぎるため、システムがバインドを許可しないことです。詳細についてはマスターが追加するまでお待ちください

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
習慣沉默

nginx を起動するユーザーが root ユーザーであるかどうかを確認します。デフォルトでは、ポート 80 は root のみが占有できます。また、一般のユーザーがポート 80 を占有できるように、関連する設定を変更する必要があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート