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總核心...