特意新建了一個虛擬機來測試,虛擬機有兩個 ip:a.a.a.a、b.b.b.b,希望 nginx 只偵聽 a.a.a.a:80
但是當(dāng)配置文件里設(shè)置指定偵聽ip listen a.a.a.a:80;
后重啟系統(tǒng),nginx 會啟動失敗并報錯Starting nginx: [emerg]: bind() to a.a.a.a failed (99: Cannot assign requested address)
,但是此時只要手動 systemctl start nginx
就能正常啟動。
去掉配置文件里的ip listen 80;
后重啟系統(tǒng),nginx 卻能正常啟動。
總結(jié):
指定偵聽 ip 后不能隨系統(tǒng)自動啟動服務(wù),但是手動啟動服務(wù)使用正常。
不指定偵聽 ip 的話就能隨系統(tǒng)自動啟動服務(wù),使用正常。
這種情況應(yīng)該如何解決?
臨時解決辦法見本帖評論(默認沒有展開)
推測的原因是因為nginx需要檢測ip去綁定,而檢測的時候系統(tǒng)沒有返回值or檢測的時機過快導(dǎo)致系統(tǒng)不允許綁定,詳細等大師補充
學(xué)習(xí)是最好的投資!
看看nginx啟動的用戶是不是root用戶,80端口默認是只有root才能占用的,還的修改相關(guān)配置,才能讓普通用戶占用80端口。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號