主頁 > 知識庫 > 解決Nginx端口沖突的排查方法示例

解決Nginx端口沖突的排查方法示例

熱門標簽:繽客網注冊時地圖標注出不來 地圖標注需要現場嗎 工廠位置地圖標注 重慶營銷外呼系統(tǒng)排名 地圖標注企業(yè)名稱侵權案件 企業(yè)400電話辦理哪正規(guī) 鶴壁電銷外呼系統(tǒng)怎么安裝 400電話辦理哪家好廠商 網站上插入地圖標注內容

問題描述

一個Spring + Angular前后端分離的項目,使用Nginx進行數據轉發(fā)。

Nginx監(jiān)聽端口8100,前臺端口4200,后臺端口8080。

像往常一樣,提前配置好MySQL、配置好Redis,引入項目的Nginx配置文件,然后啟動前臺、后臺,成功。

接下來出現了問題:前臺發(fā)起的請求,只有極少數能被后臺接收到,大部分都是404,隨著在瀏覽器中的點擊,控制臺不斷的出現404。

如果只是404,那問題就很簡單,很大可能是Nginx端口轉發(fā)設置錯了。但它的神奇之處就在于,還有那么幾次請求,是能到達后臺的。

(上圖中,顯示保存成功的時候,后臺確實輸出了相關的控制臺信息)

其他的小伙伴都沒有出現這個問題,于是開始排查。

排查過程

為了搞清楚是 后端 的問題還是 Nginx 轉發(fā)的問題,需要先從瀏覽器的NetWork中看一下這個404是后臺返回的還是Nginx返回的。

經過查看,發(fā)現是Nginx返回的。如果是后臺返回的404,會把錯誤信息寫在HTTP請求頭中。

先查看監(jiān)聽端口是否有沖突,使用nginx -T可以查看完整的Nginx配置文件,包括引入的外部文件。

// 測試配置文件是否正確,并輸出完整的配置文件
nginx -T

在輸出的結果中,只看到一個8100,說明雖然引入了多個項目,但并沒有出現監(jiān)聽端口沖突。

然后筆者打算從Nginx日志中尋找一些蛛絲馬跡。

開啟Nginx的日志模式之后,查看日志文件,發(fā)現了上千條訪問記錄

大多數都是404,少數是200,但日志并沒有提供什么有用的信息。

最終,還是在配置文件中發(fā)現了問題:

使用HomeBrew安裝的Nginx,它的全局配置文件中,默認的監(jiān)聽端口就是8080,而項目后端占用的端口也是8080。

雖然對于端口監(jiān)聽和端口占用的原理不是很了解,至少可以知道,由于Nginx監(jiān)聽了8080端口,有一部分請求被發(fā)到了Nginx自己那里,另一部分才是發(fā)送到后臺。

所以,修改全局配置文件,改掉默認端口,問題解決。

// 修改配置文件
sudo vim /usr/local/etc/nginx/nginx.conf
// 測試配置文件
nginx -t
// 重啟Nginx
nginx -s reload

終于,所有的請求都能達到后臺了。

總結

在一開始學習XAMPP的時候,就經常聽到:“如果80端口沖突,就把端口改掉,比如改成8080”。

可是當8080成為了我們的習慣之后,有些項目也會使用這個端口...因此就要解決沖突問題了。

以后更改默認端口的時候,建議改成一個不可能用到的端口,比如10000以上的端口號,避免和項目的端口產生沖突。

到此這篇關于解決Nginx端口沖突的排查方法示例的文章就介紹到這了,更多相關Nginx端口沖突的排查方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:日照 常州 鹽城 克拉瑪依 96 渭南 東莞 棗莊

巨人網絡通訊聲明:本文標題《解決Nginx端口沖突的排查方法示例》,本文關鍵詞  解決,Nginx,端口,沖突,的,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決Nginx端口沖突的排查方法示例》相關的同類信息!
  • 本頁收集關于解決Nginx端口沖突的排查方法示例的相關信息資訊供網民參考!
  • 推薦文章