運維篇——Nginx上篇
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
一、Nginx介紹 Nginx(發音為 "engine-x")是一款開源的、高性能的HTTP服務器和反向代理服務器,同時也提供了IMAP/POP3/SMTP的代理功能。它最初由俄羅斯的程序員Igor Sysoev開發,并于2004年首次公開發布。Nginx以其高效、穩定、低資源消耗以及高并發處理能力而聞名,被廣泛用于靜態內容服務、負載均衡、HTTP緩存、以及作為反向代理服務器來管理后端的服務請求。(ps:百度搜的) 接下來就從負載均衡、反向代理&正向代理、動靜分離三個用途給大家介紹一下。 二、Nginx 負載均衡 什么是負載均衡呢?給大家舉個貼切生活的例子,大家去超市買東西,買完后準備去結賬,前臺有三個收銀臺,但是都排在第一個收銀臺,隊伍又臭又長,一號收銀員忙的飛起,二號跟三號閑著刷手機,這時候就需要一個正義的人站出來,沒錯就是超市老板來了,把顧客一個一個分到二號跟三號收銀臺去,這樣三個收銀臺都在工作了,而且每個人也不會太累。 這里顧客就代表訪問網站的用戶,收銀臺和收銀員就是后端的服務器(處理用戶的請求),超市老板就是負載均衡(將請求分發給多個后端) 這時候肯定有聰明的小伙伴會問了,你怎么知道每臺服務器分配多少請求?我們用 Nginx做負載均衡都可以替我們去合理的分配請求。 Nginx負載均衡的方式: 1、輪詢法(默認方式) 顧名思義,就是一臺一臺服務器按順序輪轉。默認權重一樣。舉個例子,假如有三臺服務器ABC,第一個請求給了A,第二個就是B,第三個就是C,依次循環。 相關配置:
2、加權輪詢 在輪詢的基礎上分配更高的權重可以獲得更的請求。舉個例子,有三個孩子,一個18歲、一個15歲、一個12歲,現在有10個箱子要搬,歲數大的會分到多點,歲數小的會分到少點,這里歲數相當于權重。權重高的可以分配到更多請求,權重低的就分配較少請求。 相關配置:
3、ip_hash 根據客戶端 IP 地址的哈希值決定將請求轉發到哪臺服務器。同一個 IP 地址的請求總是轉發到同一臺后端服務器。 相關配置:
4、最少連接數 顧名思義,將請求分發給當前最少請求的服務器上。 相關配置:
上面這幾種方式都能有效地解決請求如何分配的問題,可以供用戶自行選擇。 三、Nginx 反向代理&正向代理 老樣子,什么是反向代理?什么是正向代理呢?再給大家舉兩個例子。 反向代理:**最貼切生活的,大家在某寶、某動、某夕夕上買東西,你訪問一個商品信息,這個請求首先到達了一個Nginx反向代理服務器。這個反向代理服務器根據負載均衡算法選擇一個后端的真實服務器來處理你的請求,后端服務器處理完請求后,響應會先返回給反向代理服務器,再由反向代理服務器轉發給你。整個過程中,你并不知道具體是哪個后端服務器處理了你的請求。 相關配置:
正向代理:**也是比較貼切生活的,假如大家上班的時候無聊想摸魚,連著公司網絡想要訪問國外的 Facebook 或 Twitter,直接訪問的話公司網絡策略限制了你直接訪問,但是呢假如公司有正向代理服務器來訪問。你在瀏覽器配好正向代理后,訪問 Facebook,正向代理服務器代表你去訪問Facebook,并將響應返回給你。這樣,盡管直接訪問Facebook是受限的,但通過正向代理,你仍然能夠瀏覽該網站。 相關配置:
從上面兩個例子我們可以了解到,反向代理可以確保沒有一臺服務器過載,并且外部用戶無法直接訪問后端服務器,隱藏了后端服務器的ip,減少了攻擊面。正向代理幫助我們繞過了網絡訪問限制,同時隱藏了我們的真實IP地址。 四、Nginx動靜分離 舉不動了,大家直接看官方的回答(ps:沒想到比較好的) Nginx的動靜分離是一種優化Web服務器性能的技術,主要用于高效地處理靜態資源(如HTML、CSS、JavaScript和圖片文件等)和動態內容(比如由PHP、Python或其他后端語言生成的內容)。通過動靜分離,可以顯著提高網站的加載速度和用戶體驗。 動靜分離的基本思路是將靜態資源請求和動態請求分開處理: 靜態資源:對于靜態資源,可以直接由Nginx進行服務。Nginx在處理靜態文件時非常高效,因為它不需要像動態請求那樣調用外部應用服務器。 動態內容:當涉及到動態內容時,Nginx會將這些請求代理到后端的應用服務器(如Tomcat、Django、Node.js等),然后將處理結果返回給客戶端。 相關配置(來源于網上):
閱讀原文:原文鏈接 該文章在 2025/8/18 18:45:47 編輯過 |
關鍵字查詢
相關文章
正在查詢... |