首頁  >  問答  >  主體

centos 7 nginx 綁定 ip 後不能隨系統啟動,顯示 bind() failed

刻意新建了一個虛擬機器來測試,虛擬機器有兩個 ip:a.a.a.a、b.b.b.b,希望 nginx 只偵聽 a.a.a.a:80
但當設定檔裡設定指定偵聽ip listen a.a.a.a:80; 後重新啟動系統,nginx 會啟動失敗並報錯Starting nginx: [emerg]: bind() to a.a.a.a failed (99: Cannot assign requested address),但此時只要手動systemctl start nginx 就能正常啟動。
去掉設定檔裡的ip listen 80; 後重啟系統,nginx 卻能正常啟動。
總結:
指定偵聽 ip 後不能隨系統自動啟動服務,但手動啟動服務使用正常。
不指定偵聽 ip 的話就能隨系統自動啟動服務,使用正常。

這種情況該如何解決?

臨時解決方法請參閱本篇評論(預設沒有展開)
推測的原因是因為nginx需要偵測ip去綁定,而偵測的時候系統沒有回傳值or偵測的時機過快導致系統不允許綁定,詳細等大師補充

PHPzPHPz2712 天前694

全部回覆(1)我來回復

  • 習慣沉默

    習慣沉默2017-05-16 17:27:18

    看看nginx啟動的用戶是不是root用戶,80埠預設是只有root才能佔用的,還的修改相關配置,才能讓一般用戶佔用80埠。

    回覆
    0
  • 取消回覆