(個人開源)nginx源碼注釋

來源:互聯網
上載者:User
地址

https://github.com/langsim/nginx-1.6.2-comment

簡介

希望完成一份高可讀性的nginx源碼注釋。

不會注釋的內容

  1. spdy相關代碼,因為spdy已經被http2取代.
  2. 線程相關代碼,因為至少在1.6.2版本nginx的線程還處在實驗性階段.
  3. linux之外其他平台的代碼.
  4. epoll之外其他事件模型的代碼
  5. gcc之外其他編譯器的代碼.
  6. mail相關的代碼.

完成程度

  1. core目錄 60%
  2. event目錄 20%
  3. http目錄 10%
  4. os目錄 80%

函數鏈表

  1. http filter模組之間,ngx_http_top_header_filter和ngx_http_top_body_filter會形成兩個函數鏈表, 鏈表中函數的調用順序會和對應模組在ngx_modules數組的順序相反。
  2. http請求處理的11個階段中很多階段都可以多個回呼函數,同一個階段的回呼函數之間調用順序和對應模組在ngx_modules數組裡的順序相同。 

日誌

nginx預設有兩個log檔案:

  1. access.log: 每一個http請求會在裡面產生一行記錄。
  2. error.log: nginx運行時的一些常規,錯誤或調試日誌。

進程模型

nginx啟動後可能出現四種進程狀態:

  1. 單進程前台運行
  2. 單進程守護進程模式
  3. 一個master進程,一個(或多個)worker進程,一個(或0個)cachemanager進程和一個(或0個)cacheloader進程共同在前台運行
  4. 一個master進程,一個(或多個)worker進程,一個(或0個)cachemanager進程和一個(或0個)cacheloader進程在守護進程狀態下運行。
    • master進程在啟動是用於啟動其他進程,啟動完成後用於管理其他進程。
    • woker進程,用於實際處理連結請求。
    • cachemanager進程用於按要求清理cache檔案。
    • cacheloader進程在啟動時會將cache目錄裡合格cache檔案在記憶體裡建立索引,不符合要求的cache檔案清除,然後退出。
  5. 啟動後給正在啟動並執行nginx的主進程發訊號,然後退出。

進程運行狀態的切換

  1. 重載設定檔(reload)
  2. 熱升級可執行檔

編譯

nginx的編譯與linux平台常規開源軟體的編譯方式相同,都是運行./configure && make && make install, 在./configure後可加入自己的自訂選項。

nginx使用訊號

  1. TERM, INT 快速關閉
  2. QUIT 從容關閉
  3. HUP 平滑重啟,重新載入設定檔
  4. USR1 重新開啟記錄檔,在切割日誌時用途較大
  5. USR2 平滑升級可執行程式
  6. WINCH 從容關閉背景工作處理序

nginx記憶體池

nginx有兩個記憶體池

  1. 在共用記憶體上分配記憶體用的記憶體池
  2. 在普通記憶體上申請記憶體用的記憶體池,目的是高效的利用記憶體

nginx使用到的計算hash演算法

  1. crc32
  2. crc16
  3. sha1
  4. murmurhash
  5. md5

nignx進程通訊與同步

  1. 共用記憶體的使用
  2. 訊號
  3. unix通訊端

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介紹了(個人開源)nginx源碼注釋,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.