在這里,NGINX 創(chuàng)始人 Igor Sysoev 將親述 NGINX 的誕生史
關注、星標公眾號,不錯過精彩內容
來源:InfoQ
2020 年 5 月 20 日,一場 NGINX 在國內的盛會、一個所有 NGINX 用戶 & 愛好者朝圣的最佳場所,F(xiàn)5 線上技術峰會 - NGINX 專場將以線上直播的形式面向所有開發(fā)者召開。屆時各位 NGINX 開發(fā)者心目中的偶像 NGINX 創(chuàng)始人 Igor Sysoev 以及國內 NGINX 技術專家陶輝老師將空降大會現(xiàn)場,從 NGXIN 創(chuàng)始人的成長經(jīng)歷出發(fā),幫助每一位開發(fā)者來重新理解 NGINX 的前世今生。如果想讓產品在支持高并發(fā)請求的同時保持高效的服務,NGINX 可能是最好的選擇。 這并非一句玩笑話,而是經(jīng)過全球技術人多年來技術實踐后所得出的結論。NGINX 就像一個萬能藥,在任何存在性能需求的場合都能找到它的身影,它可以在百萬并發(fā)鏈接中實現(xiàn)高吞吐量的 Web 服務。然而即便是這樣,NGINX 卻至今缺少一個能夠將所有 NGINX 用戶聚集起來的官方場所,這對于像這樣一個如此受歡迎的開源產品來說是很不常見的,而這也是此次大會之下的重頭戲之一。 NGINX 現(xiàn)在已經(jīng)成為了眾多企業(yè)后臺架構的核心,許多企業(yè)都將 NGINX 用作承擔所有來自 Web 服務的業(yè)務流量負載,也將其用作全球數(shù)百萬臺服務器上的反向代理,能夠支撐業(yè)務數(shù)以百萬級別的高并發(fā)。這樣一款自由的、開源的、高性能的 HTTP 服務器和反向代理軟件,在企業(yè)“數(shù)字化轉型概念”大行其道的今天,NGINX 能力給企業(yè)的后臺架構帶來了極大的穩(wěn)定性,更是成為企業(yè)實現(xiàn)數(shù)字轉型的必備利器。一、對于企業(yè)來說,NGINX 是實現(xiàn)數(shù)字轉型的有效途徑
NGINX 是實現(xiàn)技術突破的必要工具。
隨著 2020 年的魔幻開局,國內眾多行業(yè)都受到了不小的沖擊,疫情期間人人自危,企業(yè)復工困難,上下游供應鏈有一端沒有恢復就不能真的恢復業(yè)務;像疫情這種黑天鵝事件是完全不可預測的。對于企業(yè)而言現(xiàn)在正處于一個模糊的、不確定的、快速變化的時代,在這種 VUCA 時代特征下出現(xiàn)這種狀況可以說既是意外又不是意外。對于企業(yè)的影響一方面取決于該行業(yè)的特點,另外一方面企業(yè)所做出反應狀況的不同也會形成不一樣的結果。
隨之而來的就是許多線下業(yè)務被迫轉移線上,然而看起來只是一場非常簡單的業(yè)務遷移,但在后臺架構看來,卻是一場對企業(yè)自身、以及企業(yè)后臺面對流量、并發(fā)與架構穩(wěn)定性的挑戰(zhàn)。
首先是業(yè)務場景的變換。從線下切換至線上,不只是業(yè)務呈現(xiàn)形式的變更,其更涉及到企業(yè)內部更深處的平臺建設、流程規(guī)劃、人員培訓等一系列內容。
其次是現(xiàn)有的技術能力難以支撐。隨著線下業(yè)務的大量取消,越來越多的用戶開始涌入線上平臺,這對企業(yè)的后端架構能力提出了更高的要求,要在能夠穩(wěn)定承受流量高并發(fā)的同時還能兼顧后臺性能的穩(wěn)定性。然而這對眾多專注在線下業(yè)務的企業(yè)來說,要在短時間內把線上平臺打造為這樣一款高性能的平臺,的確有點難為他們。
這也顯示出當下的一個痛點,場景的突然轉變驅使著企業(yè)去選擇具備更加高性能、更加高效的處理平臺,而對于企業(yè)的現(xiàn)實情況來說,線上的高并發(fā)表示其急需平臺下的高性能 web 服務。
而這,恰好是 NGINX 的長處。為什么這么說?因為相較于傳統(tǒng) ADC,NGINX 具有以下幾點優(yōu)勢:
1、采用事件驅動的異步框架基于異步及非阻塞的事件驅動模型,可以說是 NGINX 得以獲得高并發(fā)、高性能的關鍵因素。因為一個 HTTP/HTTPS 請求包括多個階段,每一個階段在什么時候發(fā)生是不確定的,這就造成了異步性。每一個階段的發(fā)生都會觸發(fā)事件驅動框架,然后交由事件消費者處理,也就是說一個事件消費者僅僅是處理了一個請求中的一小部分。NGINX 采用事件驅動的設計來減少進程休眠的幾率,從而實現(xiàn)提高網(wǎng)絡性能、減少請求延時以及支撐高并發(fā)的能力。
2、反向代理有正向代理自然就存在反向代理。正向代理是指以請求端也就是客戶端的角度為正向,用戶發(fā)出請求經(jīng)過的代理,稱為“正向代理”。反向代理則恰恰相反,是由代理選擇服務端節(jié)點。存在即合理,反向代理的存在也表明其擁有著不可替代優(yōu)勢:
-
首先能夠通過隱藏服務節(jié)點的 IP 來保護服務安全,此外也可以通過將服務節(jié)點置于防火墻之后來確保業(yè)務節(jié)點服務器不會被直接攻擊到。
-
其次反向代理可以讓服務節(jié)點更加專注于業(yè)務,一些 HTTPS、壓縮等于業(yè)務無關的能力可以交由反向代理服務器去實現(xiàn),從而避免浪費業(yè)務服務節(jié)點處理請求的能力。
-
最后反向代理服務器能夠提供額外的緩存機制,將一些短時間內不會變化的動態(tài)內容儲存在緩存中,降低業(yè)務服務器的請求量;
正是由于 NGINX 引入了反向代理的特性,讓請求和響應都要經(jīng)過 NGINX,因此也給 NGINX 帶來了諸如負載均衡、HTTP 緩存等能力。
3、負載均衡“準備超越當前 ADC 的功能了嗎?”這是在 NGINX 官網(wǎng)負載均衡功能介紹頁面非常醒目的一句話,這無疑顯示了 NGINX 在這方面的雄厚實力與決心。負載均衡就是將請求“均衡”地分配到多臺業(yè)務節(jié)點服務器上。這里的“均衡”是依據(jù)實際場景和業(yè)務需要而定的。對于 NGINX 來說,請求到達 NGINX,NGINX 作為反向代理服務器,有絕對的決策權,可以按照規(guī)則將請求分配給它知道的節(jié)點中的一個,通過這種分配,使得所有節(jié)點需要處理的請求量處于相對平均的狀態(tài),從而實現(xiàn)負載均衡。
4、HTTP 緩存瀏覽器緩存是前端開發(fā)中經(jīng)常遇到的問題,它是提升性能同時減少服務器壓力的有效手段之一。NGINX 可以作為靜態(tài)頁面的 web 服務器,同時還支持 CGI 協(xié)議的動態(tài)語言,比如 perl、PHP 等。
而綜合上述總結的幾點 NGINX 優(yōu)勢,NGINX 無疑是最合適的那個打造高性能平臺的工具。然而雖然它很火,但往往流行程度和開發(fā)者的掌握程度是不相等的。尤其是在眾多業(yè)務轉型線上,越來越多的企業(yè)認識到 NGINX 對于業(yè)務支撐的重要性,作為開發(fā)者,掌握 NGINX 開發(fā)能力似乎已經(jīng)成為了“必修課”。
然而開發(fā)者在應用 NGINX 的過程中往往會遇到各種問題,國內 NGINX 技術專家陶輝曾經(jīng)總結過,大多數(shù)人使用 NGINX 都停留在這幾個級別:
-
第一種:使用 NGINX 配置最簡單的反向代理服務或者靜態(tài)資源服務,當擴展功能時發(fā)現(xiàn)新增的指令 NGINX 不支持,但又不懂如何增加 NGINX 模塊,如何分析 access 日志。
-
第二種:可以根據(jù)源碼定制安裝 NGINX,對網(wǎng)上流傳的大眾配置做一些個性化的修改,但遇到修改 proxy_pass 后的 URL 上游服務不正常等問題時就束手無策,不清楚 NGINX 各個目錄的意義,也不清楚 NGINX 的進程結構。
-
第三種:能夠順暢地使用 NGINX 的常用功能,但不清楚第三方模塊發(fā)生沖突時的解決方案、stale 過期緩存的用法、NGINX 諸多變量是如何被賦值的、聽說 if 指令是邪惡的卻不知道它的設計理念及正確用法等等。
-
第四種:可以正確地使用 NGINX 的功能及第三方模塊,并按照網(wǎng)絡上常見的優(yōu)化參數(shù)優(yōu)化性能,但對如何系統(tǒng)化地優(yōu)化性能沒有頭緒,對于 NGINX、Linux 提供的內存緩沖區(qū)、網(wǎng)絡類等諸多指令和參數(shù)的優(yōu)化沒有頭緒。
-
第五種:可以熟練使用 NGINX,但對各第三方功能模塊如何與 NGINX 結合使用以及對 NGINX 性能影響不太清楚,對 NGINX 源碼的理解沒有達到由點到面的程度。
但這還只是冰山一角,NGINX 技術所涵蓋的范圍之廣超出我們每一個人的想象。作為一款全球最受歡迎的開源產品之一,NGINX 的一舉一動都受到了來自全球開發(fā)者的重點關注。
二、NGINX 在中國又有大動作了
2020 年 5 月 20 日(星期三),F(xiàn)5 以線上峰會的形式召開 F5 Code to Customer 2020 代碼到用戶暨 F5 中國 20 周年紀念慶典。屆時,各位 NGINX 開發(fā)者心目中的偶像 NGINX 創(chuàng)始人 Igor Sysoev 以及國內 NGINX 技術專家陶輝老師將空降大會現(xiàn)場,從 NGXIN 創(chuàng)始人的成長經(jīng)歷出發(fā),幫助每一位開發(fā)者來重新理解 NGINX 的前世今生。
另外,備受開發(fā)者關注的 NGXIN 開源社區(qū)也將在大會現(xiàn)場正式成立。至此,NGINX 開發(fā)者終于有一個官方的“家”。此外本次大會更設有 5 大技術專題論壇、30+ 技術內容深度解讀以及 100+ 解決方案,足以滿足你對數(shù)字轉型技術趨勢的渴望。
三、關于 NGINX 中國開源社區(qū)
NGINX 開源社區(qū)是 F5/NGINX 面向所有 NGINX 用戶的官方社區(qū)。我們秉持“開放,包容,溝通,貢獻“ (open,inclusive,connect,contribution) 之宗旨,與業(yè)界共建開放、包容、活躍的“NGINX 用戶之家“;秉承開源的精神,在社區(qū)治理上高度開放,為所有 NGINX 的用戶,開發(fā)者和技術愛好者,提供一個方便學習、討論的場所。也期待您成為此社區(qū)中活躍的一員,貢獻您的文章,博客,代碼,踴躍討論與回答問題,打造您個人品牌和影響力。
2019 年 3 月,云計算和安全應用服務公司 F5 Networks Inc 宣布收購 NGINX,NGINX 是應用交付領域的開源領導者。
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!