Nginx 使用詳解

2021-10-06 10:28:18 字數 3154 閱讀 8931

nginx是乙個高效能的http伺服器**,實現對http請求的處理。 它沒啥別的本事,就是乙個中介**,把http請求攔截下來之後交給apache、tomcat等web容器去處理。當然這個中介**還會點武術的,它本身也可以完成對靜態資源的請求處理,效能還不錯,這個我在後面會講到。

負載均衡

將乙個請求,分攤給多個不同的伺服器(web容器)去處理。這些伺服器可能在一台主機上,也可以在其它主機,也可以是內網主機,也可以是外網。

就像你去餐廳吃飯,有配菜、炒菜、傳菜、上菜等不同環節不同的人負責。這樣整個餐廳就能為很多顧客服務,而且任何乙個環節出錯,比如服務員臨時請假了,可以隨時找另外的服務員替補,不會造成整個餐廳無法繼續運營。如果是一家小飯館,所以事情可能都是老闆乙個人去做。

動靜分離

將簡單的靜態資源請求交給自己(這方面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 quit 快速停止或關閉:

ps:因為上面已經講nginx關閉了,所以這裡會報錯:

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

我們開啟conf/nginx.conf檔案,如下圖所示就是nginx預設配置了乙個虛擬伺服器:

我們解釋一下其中主要的幾個配置項的作用:

listen 80; 監聽所有80埠的訪問。

server_name localhost; 監聽主機名為localhost的訪問。

當以上條件滿足時,執行以下規則:

location /

以上內容翻譯**話,就是:如果你訪問localhost這個」網域名稱「,不指定訪問哪個頁面,我就預設給你index.html 或者 index.htm。

我們來驗證一下。

我們編輯 html/index.html:

然後在瀏覽器訪問:localhost

證明了虛擬機器配置所代表的含義。

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

在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的主要使用就介紹完了。

nginx的命令使用詳解

sudo nginx 開啟 nginx nginx t 測試配置是否有語法錯誤 nginx hvvtq s signal c filename p prefix g directives h 開啟幫助資訊 v 顯示版本資訊並退出 v 顯示版本和配置選項資訊,然後退出 t 檢測配置檔案是否有語法錯誤,...

Nginx詳解及入門使用

在了解nginx之前,我們首先需要了解什麼是正向 什麼是反向 正向 伺服器位於伺服器與客戶端之間,為了從伺服器獲取資訊,客戶端向 伺服器傳送請求並指定目標伺服器,由 伺服器向目標伺服器獲取資訊,並將獲得的內容返回給客戶端。特點 伺服器位於使用者和伺服器之間 使用者發起請求之前已經清楚的知道誰的目標伺...

Nginx使用配置檔案詳解

nginx是一款面向效能設計的http伺服器,相較於apache lighttpd具有占有記憶體少,穩定性高等優勢。nginx核心配置檔案詳解 nginx配置檔案nginx.conf中文詳解 定義nginx執行的使用者和使用者組 user www www nginx程序數,建議設定為等於cpu總核心...