web伺服器設計中的關鍵限制
效能
網路效能、單次請求的延遲性、網路效率
可伸縮性
簡單性
可修改性可擴展性
可自訂性、可配置性、可重用性
可見性
關鍵組件的運作情況可以被監控的程度
可移植性
可靠性
nginx的架構設計
高度抽象的模組介面
所有模組都遵循相同的ngx_module_t介面設計規範,這種方式帶來了良好的簡單性、靜態可擴展性、可重用性
模組介面非常簡單,具有很高的靈活性
模組的基本介面ngx_module_t夠簡單,只涉及模組的初始化、退出及對組態項目的處理
ngx_module_t結構體作為所有模組的通用接口,它只定義了init_master、init_module、init_process、init_thread、exit_thread、exit_process、exit_master;
ngx_command_t類型的commands陣列則指定了模組處理配置項目的方法。
配置模組的設計
ngx_conf_module提供了高可用性、高可擴展性、高可自訂性、高可伸縮性
核心模組介面的簡化
官方的核心類型模組共有6個具體模組:ngx_core_module 、ngx_errlog_module、ngx_events_module、ngx_openssl_module、ngx_http_module、ngx_mail_module
多層次、多類別的模組設計
事件驅動架構
nginx不會使用進程或可能來作為消費者模組。
請求的多階段非同步處理
將阻塞進程的方法按照相關的觸發事件分解為兩個階段
將阻塞方法調用按照時間分解為多個階段的方法調用
在「無所事事」且必須等待所事系統的回應,從而導致進程空轉時,使用定時器劃分階段
如果阻塞方法完全無法繼續劃分,則必須使用獨立的進程執行這個阻塞方法
管理進程、多工作進程設計
優點:
利用多核心系統的同時處理能力
負載平衡- 管理流程或負責監控工作流程的狀態,並負責管理其行為
-
- 平台無關的程式碼實作
記憶體池的設計
這種記憶體池的最大優點在於:把多次向系統申請記憶體的操作整合成一次,這大大減少CPU資源的消耗,同時減少了記憶體碎片
使用統一管道過濾器模式的http過濾模組
nginx框架中的核心結構體ngx_cycle_t
ngx_listening_t結構體
ngx_cycle_t結構體
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i
').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介紹了nginx基礎架構,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。