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