1. 程式人生 > 其它 >在phpStudy_pro中啟動WNMP報錯/警告 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 的解決方法

在phpStudy_pro中啟動WNMP報錯/警告 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 的解決方法

出現這個問題,是不影響伺服器正常使用的,但是作為程式設計師,看不慣有“warning”的瑕疵存在……

 

 搜了很多帖子,發現有很多類似的情況出現,有些是在 Linux 下報這樣的錯,但我的是在整合環境PHPStudy_pro中啟動WNMP出現了這樣的提醒。

 

【發現問題】 

在部署伺服器時,需要按照本地配置進行編寫nginx配置檔案,

修改nginx配置引數後,使用nginx -t檢查配置.

提示successfull後就可以使用 nginx -s reload來重新載入配置

配置的過程中遇到這樣的問題,就是綁定了主機名後,重新載入配置時會出現警告

 

nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

 

意思是重複綁定了server name,但這個警告不會影響到伺服器執行。而且,這個重複繫結的意思是現在執行的nginx服務和將要載入的新配置中的重複,所以,這個警告其實是不必的。

重啟nginx時出現如下警告:

nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

 

【問題原因】

原因是 “localhost” 這個域名出現了兩次甚至多次,把同一個域名解析到了不同的目錄, 一般將配置檔案單獨分離出來容易出現這個錯誤

就是同一個IP或埠號,綁了兩三個域名的,要改!

不過這個警告不影響使用,大多數人會忽視它,無視!

 

在給第一個主機設定了default_server的時候,重新載入配置就會出錯,

最初就是這個原因,誤以為nginx不能在同一ip埠繫結多個域名。

但其實是可以的!!!(我做的在後邊,同時一個IP被三個域名解析了:host 、host.ll 、test.ll

一般的辦法是殺掉nginx程序重新啟動(taskkill-windows下,kill-Linux下),或者先去掉default_server設定,重新載入nginx配置後,再加上,再重新配置。

這個方法比較麻煩,有大牛級別的方法,歡迎留言提供

參考:https://www.shirne.com/blog/linux/nginxxunizhujipeizhibeiwang.html

  

【解決方法】

(一)、命令修改

Linux系統環境下,需要查詢出現這個域名的檔案,使用grep這個命令

grep -r localhost /*nginx的路徑*/conf

找到配置檔案的位置再進行配置

cd /usr/local/nginx/conf
vi nginx.conf

修改之後重啟即可

nginx虛擬主機配置可參考:https://blog.csdn.net/Shiloh_My/article/details/79996426

配置引數的含義可參考:https://blog.csdn.net/qq_37818095/article/details/105515177  (Nginx配置檔案 nginx.conf 配置詳解)

配置檔案的功能註釋可參考:https://blog.csdn.net/zhao8848jun/article/details/8254590  (Nginx配置檔案功能註釋)

有空了,我再自己整理一個Apache的配置檔案相關注釋

 

(二)、檔案編輯

 nginx有個預設的埠檢測,如443,80等等,它也會報這個錯,因為這埠可能被mysql或者redis或者tomcat,https之類的佔了

還有127.0.0.1,0.0.0.0,localhost之類的也不要用,遲早會報錯。

開啟伺服器的配置檔案,該修改的修改,按照命名規範來操作,

避免出現衝突!

 開啟 vhosts 資料夾:phpstudy_pro\Extensions\Nginx1.15.11\conf\vhosts

找到 0localhost_80.conf 檔案,把以前的 “server_name localhost” 註釋重寫或稍作修改均可:

        #為避免衝突警告儘量避免使用 localhost、127.0.0.1、0.0.0.0等等之類
        #server_name  localhost;
         server_name host host.ll test.ll;

這就是我做的,一個IP同時被三個域名解析了:host 、host.ll 、test.ll

 

緊接著,最重要的一步就是:還需要配置linux / win下邊的host檔案

 

附nginx本地hosts對映

#域名解析IP地址
#本地IP->hosts對映
127.0.0.1 host
127.0.0.1 host.ll
127.0.0.1 test.ll

這就是我做的,一個IP同時被三個域名解析的hosts對映:host 、host.ll 、test.ll

 

Linux系統和Windows系統是一樣的,檔案都是hosts,路徑分別是在/etc/hosts  和 C:\Windows\System32\drivers\etc\hosts(通常是被隱藏起來的檔案)

 

 參考:https://www.cnblogs.com/ydymz/p/9542912.html

 

 

OK!如此配置完畢,一切正常執行:

不在有彈出warning的彈框

 

測試本地host ,如果使用Google瀏覽器的話需要把 http 也加入地址中:http:test.ll  這是避免瀏覽器自動使用搜索引擎來搜尋地址 test.ll ,

 

 

 

測試成功的結果如下(自己寫的一個index.html 測試頁面):

 

 

 

 

 

 

 

 

 

【小結】

出現這樣的問題,就是命名不規範的原因,現在nginx 1.14/15 是警告/報錯,以後注意規範自己的命名,不然wran遲早會變成error的。

也提醒我們開發時,要時刻規整自己的習慣,按照規範化標準來要求自己,慢慢養成好習慣,聚沙成塔、集腋成裘,但要避免積重難返!

 

出現這個問題,是不影響伺服器正常使用的,但是作為程式設計師,看不慣有“warning”的瑕疵存在……

 

 搜了很多帖子,發現有很多類似的情況出現,有些是在 Linux 下報這樣的錯,但我的是在整合環境PHPStudy_pro中啟動WNMP出現了這樣的提醒。

 

【發現問題】 

在部署伺服器時,需要按照本地配置進行編寫nginx配置檔案,

修改nginx配置引數後,使用nginx -t檢查配置.

提示successfull後就可以使用 nginx -s reload來重新載入配置

配置的過程中遇到這樣的問題,就是綁定了主機名後,重新載入配置時會出現警告

 

nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

 

意思是重複綁定了server name,但這個警告不會影響到伺服器執行。而且,這個重複繫結的意思是現在執行的nginx服務和將要載入的新配置中的重複,所以,這個警告其實是不必的。

重啟nginx時出現如下警告:

nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

 

【問題原因】

原因是 “localhost” 這個域名出現了兩次甚至多次,把同一個域名解析到了不同的目錄, 一般將配置檔案單獨分離出來容易出現這個錯誤

就是同一個IP或埠號,綁了兩三個域名的,要改!

不過這個警告不影響使用,大多數人會忽視它,無視!

 

在給第一個主機設定了default_server的時候,重新載入配置就會出錯,

最初就是這個原因,誤以為nginx不能在同一ip埠繫結多個域名。

但其實是可以的!!!(我做的在後邊,同時一個IP被三個域名解析了:host 、host.ll 、test.ll

一般的辦法是殺掉nginx程序重新啟動(taskkill-windows下,kill-Linux下),或者先去掉default_server設定,重新載入nginx配置後,再加上,再重新配置。

這個方法比較麻煩,有大牛級別的方法,歡迎留言提供

參考:https://www.shirne.com/blog/linux/nginxxunizhujipeizhibeiwang.html

  

【解決方法】

(一)、命令修改

Linux系統環境下,需要查詢出現這個域名的檔案,使用grep這個命令

grep -r localhost /*nginx的路徑*/conf

找到配置檔案的位置再進行配置

cd /usr/local/nginx/conf
vi nginx.conf

修改之後重啟即可

nginx虛擬主機配置可參考:https://blog.csdn.net/Shiloh_My/article/details/79996426

配置引數的含義可參考:https://blog.csdn.net/qq_37818095/article/details/105515177  (Nginx配置檔案 nginx.conf 配置詳解)

配置檔案的功能註釋可參考:https://blog.csdn.net/zhao8848jun/article/details/8254590  (Nginx配置檔案功能註釋)

有空了,我再自己整理一個Apache的配置檔案相關注釋

 

(二)、檔案編輯

 nginx有個預設的埠檢測,如443,80等等,它也會報這個錯,因為這埠可能被mysql或者redis或者tomcat,https之類的佔了

還有127.0.0.1,0.0.0.0,localhost之類的也不要用,遲早會報錯。

開啟伺服器的配置檔案,該修改的修改,按照命名規範來操作,

避免出現衝突!

 開啟 vhosts 資料夾:phpstudy_pro\Extensions\Nginx1.15.11\conf\vhosts

找到 0localhost_80.conf 檔案,把以前的 “server_name localhost” 註釋重寫或稍作修改均可:

        #為避免衝突警告儘量避免使用 localhost、127.0.0.1、0.0.0.0等等之類
        #server_name  localhost;
         server_name host host.ll test.ll;

這就是我做的,一個IP同時被三個域名解析了:host 、host.ll 、test.ll

 

緊接著,最重要的一步就是:還需要配置linux / win下邊的host檔案

 

附nginx本地hosts對映

#域名解析IP地址
#本地IP->hosts對映
127.0.0.1 host
127.0.0.1 host.ll
127.0.0.1 test.ll

這就是我做的,一個IP同時被三個域名解析的hosts對映:host 、host.ll 、test.ll

 

Linux系統和Windows系統是一樣的,檔案都是hosts,路徑分別是在/etc/hosts  和 C:\Windows\System32\drivers\etc\hosts(通常是被隱藏起來的檔案)

 

 參考:https://www.cnblogs.com/ydymz/p/9542912.html

 

 

OK!如此配置完畢,一切正常執行:

不在有彈出warning的彈框

 

測試本地host ,如果使用Google瀏覽器的話需要把 http 也加入地址中:http:test.ll  這是避免瀏覽器自動使用搜索引擎來搜尋地址 test.ll ,

 

 

 

測試成功的結果如下(自己寫的一個index.html 測試頁面):

 

 

 

 

 

 

 

 

 

【小結】

出現這樣的問題,就是命名不規範的原因,現在nginx 1.14/15 是警告/報錯,以後注意規範自己的命名,不然wran遲早會變成error的。

也提醒我們開發時,要時刻規整自己的習慣,按照規範化標準來要求自己,慢慢養成好習慣,聚沙成塔、集腋成裘,但要避免積重難返!

 

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

凡事預則立不預則廢,養成覆盤總結的微小習慣:改變自己,改變世界,把握當下,把握現在,每天前進1%,享受“複利式成長”!

@Anthony_GM

2022-4-8 11:57:02