歡迎光臨
每天分享高質量文章

百萬併發下的 Nginx 效能最佳化之道,值得看!!!

Nginx 很火,火到無論是創業公司,還是 BAT 等一線網際網路公司,都會使用Nginx。因為它就像一個萬能藥,在任何存在效能需求的場合總能找見它的身影。它可以輕鬆在百萬併發連線下實現高吞吐量的 Web 服務,同時諸多應用場景下的問題都可以透過種種 Nginx 模組得以解決,而我們所需的工作量也並不大。

實戰出真知。

2010 年初,我在思科第一次使用了 Nginx。那時我們的檔案上傳下載服務需要做重構,於是我在調研了 Lighthttpd、Nginx 等開源元件後,決定選擇 Nginx 重構服務。因為我在閱讀完 Nginx 的原始碼後,被其設計哲學、類 Linux 內核的程式碼風格所吸引,且模組設計極其穩定,6 年的快速發展也幾乎未有何變化。

Nginx 天生就適合在 Linux 伺服器上處理百萬、千萬級的併發連線,而優秀的架構使得它未來不需要重構,所以它的生態圈內的第三方模組長期有效。而長年的發展下日益增多的第三方模組進一步賦能 Nginx,使 Nginx 適用於更多的場景,甚至滲透到 LVS 的領域與 F5 這樣的硬體產品競爭!同時,如 OpenResty 或者 Tengine 這樣的第三方模組群,進一步發展出了新生態,使 Nginx 的應用進一步嚮應用防火牆、CDN 等領域擴充套件。

            

我也經常提醒身邊的朋友,學好 Nginx,可以讓你在工作中獲得立竿見影的效果。

  • 如果你是一個前端工程師,在用 Node.js 寫 Web 程式,使用 Nginx 可以讓你高效處理靜態資源檔案;

  • 如果你是一個運維工程師,那麼在你有效配置 Nginx 後,可以為公司節省大量的 IT 成本;

  • 如果你是一個後端開發工程師,遇到效能瓶頸時,你完全可以使用 Nginx 的第三方模組或 OpenResty 的 Lua 模組,非常高效地解決你的效能瓶頸。

可在我與 Nginx 打交道的近 10 年裡,遇到不少會用卻不善用 Nginx 的開發者,就好比你有一把好劍,可你卻拿它來砍柴,這是一件很可惜的事情。打個比方,高併發導致多個請求過來,有些開發者會用最繁雜的程式來配置轉發,卻不知其中還有更輕便更有技巧性的設定。這種情況的發生,時常會讓自己開發效率極低,且顯得笨拙。

贊(0)

分享創造快樂