接受請求的模型:html
併發訪問響應模型:nginx
單進程I/O模型:啓動一個進程處理用戶請求;這意味着,一次只能處理一個請求,多個請求被串行響應web
多進程I/O結構:由父進程並行啓動多個子進程,每一個子進程響應一個請求apache
複用的I/O結構:一個進程響應n個請求windows
多線程模式:一個進程產生n個線程,一個線程處理一個請求 --單進程所建立的高效並行工做線程數量有限服務器
事件驅動(event-driven):一個進程直接處理n個請求 --是當前較新的併發模型多線程
複用的多進程I/O結構:啓動多個(m)個進程,每一個進程生成(n)個線程併發
響應的請求數量:m*n負載均衡
http服務程序:jsp
httpd(apache)
nginx
lighttpd
應用程序服務器
IIS①:.Net
tomacat: .jsp
www.netcraft.com 數據挖掘站點 統計各web站點使用web程序
httpd的安裝和使用:
ASF:apache software foundation②
httpd: apache
a patchy server = apache
httpd
httpd的特性:
高度模塊化:core+modules
DSO③:dynamic shared object
MPM:Multipath processing Modules(多路處理模塊) 同時響應多個用戶請求
prefork:多進程模型,每一個進程響應一個請求;--二級結構
一個主進程:負責生成子進程及回收子進程;負責建立套接字;負責接收請求,並將其派發給某子進程進行處理;
n個子進程:每一個子進程處理一個請求
工做模型:會預先生成幾個空閒進程,隨時等待用於響應用戶請求;最大空閒和最小空閒進程數量,超出最大空閒的進程會被銷燬
worker:多進程多線程模型,每線程處理一個用戶請求;--三級結構
一個主進程:負責生成子進程;負責建立套接字;負責接收請求,並將其派發給某子進程進行處理;
多個子進程:每一個子進程負責生成多個線程
每一個線程:負責響應用戶請求
併發響應數量:m*n
m:子進程數量
n:每一個子進程所能建立的最大線程數量
event:事件驅動模型,多進程模型,每一個進程響應多個請求;--二級結構
一個主進程:負責生成子進程;負責建立套接字;負責接收請求,並將其派發給某子進程進行處理;
子進程:基於事件驅動機制直接響應多個請求;
httpd-2.2:仍爲測試使用模型
httpd-2.4:event可生產環境中使用;
httpd的功能特性:
CGI④:Common Gateway Interface
虛擬主機:IP,PORT,FQDN
反向代理
負載均衡
路徑別名
豐富的用戶認證機制
basic
digest
支持第三方模塊
......
安裝httpd:
rpm包:CentOS發行版中直接提供
編譯安裝:定製新功能,或其餘緣由
CentOS6:httpd-2.2
程序環境:
配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服務腳本:
/etc/rc.d/init.d/httpd
腳本配置文件:/etc/sysocnfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日誌文件:
/var/log/httpd:
access_log:訪問日誌
error_log:錯誤日誌
站點文檔:
/var/www/html
模塊文件路徑:
/usr/lib64/httpd/modules
CentOS7:httpd-2.4
程序環境:
配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
模塊相關配置文件:/etc/httpd/conf.modules.d/*.conf
systemd unit file:
/usr/lib/systemd/system/httpd.service
主程序文件:
/usr/sbin/httpd
httpd-2.4支持MPM的動態切換
日誌文件:
/var/log/httpd:
access_log:訪問日誌
error_log:錯誤日誌
站點文檔:
/var/www/html
模塊文件路徑:
/usr/lib64/httpd/modules
服務器控制:
systemctl enable | disable httpd.service
systemctl {start|status|stop|restart} httpd.service
注:
①是windows server自帶的web服務器
②兩大開源組織FSF(自由軟件基金會)和ASF(apache軟件基金會) httpd屬於ASF
③DSO動態共享對象
④CGI通用網關接口 --支持動態網站技術的接口