首頁  >  文章  >  後端開發  >  nginx學習(一)

nginx學習(一)

WBOY
WBOY原創
2016-08-08 09:22:56940瀏覽

最近開始做CDN相關的業務,後台全部是nginx相關的知識,例如所有網站的快取都是架構在nginx伺服器上,各種轉發,代理,緩存,負載均衡等功能全部由nginx支援。

很多的存取控制策略需要採用nginx內嵌lua來做,另外,關於CDN還有大量的邏輯和業務需要在nginx上進行定制開發,所以掌握nginx是深入開展CDN業務的基礎。

所以打算用一段時間,一邊學習,一邊開發業務,把整體學習心得都記錄下來,希望對nginx能有更好的理解。

目前對nginx的了解僅限於以下幾個方面:

  • 1 nginx 是一位俄羅斯大牛開源的基於事件驅動模型的C/S架構的高效能的WEB伺服器,主要支援HTTP和郵件相關的協定。
  • 2 nginx 在WEB伺服器中效能是最好的,雖然市佔率只排到第二位,第一名當然是java世界的apache。
  • 3 目前國內主流的CDN業務,後端幾乎都是基於nginx開展的。
  • 4 nginx功能非常強大,支援正向代理,反向代理,緩存,負載平衡等許多功能。
  • 5 nginx可以很好的支援lua擴展,內部可以載入lua解釋器,實現和lua語言的完美契合。目前好多功能都是在lua腳本中完成。
  • 6 nginx採用多進程的管理方式,一個master管理者,0個到多個worker工作者進程,所有具體業務都是有具體的worker來完成。 master只負責管理和調度的職責。
  • 7 nginx採用管道的方式處理訊息流,處理過程共分為11個階段,每個訊息都依序一個階段一個階段的執行,在其中某個階段不滿足條件後會提前結束。其中最出名的三個階段分別是rewrite,access,content。 rewrite就是對url進行內部處理,包括檢查,修改屬性,重新跳轉等,access主要是實現存取控制等,content就是產生最後要發給使用者的內容。
  • 8 nginx內部有很多資料結構,包括字串,鍊錶,哈希,以及radix_tree(之前用過)等,這些資料結構最好也好好掌握下。
  • 9 有一個開源專案叫openresty, 裡麵包含了nginx的核心和常用的第三方模組,想快速搭建可以參考。

以上就介紹了nginx學習(一),包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn