nginx 監聽相同的端口時配置文件加載順序

Nginx 配置文件注意點

  1. 端口配置
    監聽的端口不能被其他的進程佔用,比如8080端口如果已經被tomcat佔用的話,Nginx在監聽的過程中就會出現如下錯誤:
    這裏寫圖片描述
    所以在配置監聽的端口時,要檢查端口的佔用情況
  2. 配置文件匹配的優先順序
    當在/etc/nginx/conf.d/目錄下有多個Nginx配置文件,且監聽的端口號相同時,會優先選擇配置了匹配的server_name且值不爲localhost的配置文件。如果server_name只有爲localhost的配置文件和沒有配置server_name的配置文件,則會選擇localhost的配置文件。如果監聽的端口號及server_name配置的值都一樣,則優先選擇該目錄下第一個配置文件。

    • 例子1
      在/etc/nginx/conf.d/中有三個配置文件,依次爲a.conf,b.conf,c.conf
      a.conf 配置:
      這裏寫圖片描述
      b.conf 配置
      這裏寫圖片描述
      c.conf 配置
      這裏寫圖片描述
      假設ip地址爲108.142.159.59,在瀏覽器中通過ip訪問nginx的80端口,則將會讀取b.conf的配置文件,其他兩個監聽了相同端口的配置忽略
    • 例子2
      在/etc/nginx/conf.d/中有三個配置文件,依次爲a.conf,b.conf
      a.conf 配置:
      這裏寫圖片描述
      b.conf 配置
      這裏寫圖片描述
      假設ip地址爲108.142.159.59,在瀏覽器中通過ip訪問nginx的80端口,則將會讀取a.conf的配置文件,另一個監聽了相同端口的配置忽略
    • 例子3
      在/etc/nginx/conf.d/中有兩個配置文件,依次爲a.conf,b.conf
      a.conf 配置:
      這裏寫圖片描述
      b.conf 配置:
      這裏寫圖片描述
      假設ip地址爲108.142.159.59,在瀏覽器中通過ip訪問nginx的80端口,則將會根據現實順序讀取a.conf的配置文件,另一個監聽了相同端口的配置忽略

    補充:如果配置文件中沒有server_name進行監聽,就會任意匹配一個,比如:
    在/etc/nginx/conf.d/中有一個配置文件爲a.conf

    這裏寫圖片描述
    假設ip地址爲108.142.159.59,在瀏覽器中通過ip訪問nginx的80端口,因爲沒有匹配,所以會自動匹配
    a.conf。

不過這只是自身配置過程中發現的注意點,可能存在問題,有的話歡迎指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章