Nginx 使用詳解

概述

介紹

Nginx是一個高性能的HTTP服務器代理,實現對HTTP請求的處理。 它沒啥別的本事,就是一箇中介代理,把HTTP請求攔截下來之後交給Apache、Tomcat等WEB容器去處理。當然這個中介代理還會點武術的,它本身也可以完成對靜態資源的請求處理,性能還不錯,這個我在後面會講到。

主要作用

負載均衡

將一個請求,分攤給多個不同的服務器(WEB容器)去處理。這些服務器可能在一臺主機上,也可以在其它主機,也可以是內網主機,也可以是外網。
就像你去餐廳喫飯,有配菜、炒菜、傳菜、上菜等不同環節不同的人負責。這樣整個餐廳就能爲很多顧客服務,而且任何一個環節出錯,比如服務員臨時請假了,可以隨時找另外的服務員替補,不會造成整個餐廳無法繼續運營。如果是一家小飯館,所以事情可能都是老闆一個人去做。

動靜分離

將簡單的靜態資源請求交給自己(這方面Nginx性能也比較優越)或者其它服務器處理,將動態資源請求交給其它服務處理。

安裝Nginx

ps:我使用Windows進行本案例演示,如果需要在linux部署,需要下載linux版本。

訪問官網,下載安裝包:
http://nginx.org/en/download.html
在這裏插入圖片描述
解壓當前電腦一個無中文字符、無空格的目錄:
在這裏插入圖片描述
雙擊nginx,會看到一個黑窗口一閃而過:
在這裏插入圖片描述
在任務管理器種,如果看到如下兩個進程運行(不能多,也不能少),代表啓動成功:
在這裏插入圖片描述

目錄介紹

conf:Nginx核心配置文件所在目錄,其中重要的是nginx.conf文件,後面我們會使用到到它。
logs:日誌目錄,其中最主要的是errs.log文件,如果啓動之後在任務管理器沒有看到程序啓動,可以通過分析該文件的錯誤輸出定位問題。
temp:存放臨時文件的目錄。
html:存放靜態資源的目錄,當然你也可以在nginx.conf配置文件種指定其它位置。

主要命令

在CMD進入Nginx安裝目錄:

start nginx代表啓動Nginx:

nginx -v 查看版本號:
在這裏插入圖片描述
nginux -t 驗證是否配置成功:

nginx -s reload 配置文件如果修改,重新進行載入使其神效:
在這裏插入圖片描述nginx -s stop 正常停止或關閉:
在這裏插入圖片描述
nginx -s quit 快速停止或關閉:

ps:因爲上面已經講nginx關閉了,所以這裏會報錯:
在這裏插入圖片描述

Nginx使用

配置Nginx虛擬服務器

這個是Nginx最有用,也是最核心的功能。一個Nginx可以配置多個虛擬服務器。Nginx通過監聽80端口接收到HTTP請求,然後通過虛擬服務器的配置規則和條件將請求轉發到其它服務器。 這就是實現負載均衡的主要技術原理。

我們打開conf/nginx.conf文件,如下圖所示就是Nginx默認配置了一個虛擬服務器:
在這裏插入圖片描述
我們解釋一下其中主要的幾個配置項的作用:
listen 80; 監聽所有80端口的訪問。
server_name localhost; 監聽主機名爲localhost的訪問。

當以上條件滿足時,執行以下規則:
location / { /代表只要訪問根路徑,就執行以下內容
root html; 指定訪問路徑爲當前html目錄
index index.html index.htm; 如果不指定資源,默認訪index.html 或者 index.htm
}

以上內容翻譯成人話,就是:如果你訪問localhost這個”域名“,不指定訪問哪個頁面,我就默認給你index.html 或者 index.htm。

我們來驗證一下。

我們編輯 html/index.html:
在這裏插入圖片描述
然後在瀏覽器訪問:localhost
在這裏插入圖片描述
證明了虛擬機配置所代表的含義。

下面還有一段配置,代表當出現500、502、404等錯誤時,訪問/50x.html,而location又指明,50x.html的路徑也在當前html目錄:
在這裏插入圖片描述

虛擬服務器配置規則

server
在http的內容中可以配置多個server,每個server都是一個可以接收http請求的虛擬服務器。

listen
表示該server在nginx中運行時監聽的nginx服務器上所有該端口的訪問。

server_name
listen發現請求後,判斷請求中的host頭,匹配則進入該server。需要注意的是,不同的server配置,監聽端口和域名名稱不能相同!

location /
負責計算請求uri路徑,判斷和規則匹配與否,不匹配則不處理,一旦匹配進入到location。例如,location / 表示所有路徑以/開始的都匹配。

location的匹配規則和優先級:
在同一個server的內容裏,可以同時存在多個location,根據請求中攜帶uri地址結構不同值不同,分到不同location來出不同的請求。
涉及location pattern有哪些內容,多個location同時匹配成功時,優先級如何判斷?

  匹配規則  按照從上到下匹配優先級規則:

在這裏插入圖片描述

通配
location /
只要滿足server中端口和域名都能匹配到這個/

proxy_pass
表示代理路徑,一旦進入location,可以通過這個關鍵字轉向其它服務器。

負載均衡配置

有了以上的基礎,我們可以着手配置負載均衡了。

輪詢方式負載均衡的實現

在server的同級配置集羣服務器列表:
在這裏插入圖片描述
然後配置具體規則。以下內容表示,只要用戶通過瀏覽器訪問/localhost/testMultis將分別交由upstream toservers{}中的服務器進行輪詢處理:
在這裏插入圖片描述

權重負載均衡的實現

以下配置內容,將按照10%,20%,70%的比例將請求交由這些服務器處理:
在這裏插入圖片描述

到此,Nginx的主要使用就介紹完了。

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