一、httpd 簡介
1. httpd 歷史:
httpd daemon 最早誕生于1995年二月, 伊利諾伊大學香檳分校的美國國家超級計算應用中心(NCSA),由Rob McCool開發。當這個項目完成后,Rob 老兄離開RCSA以后,這個項目組就解散了,這個項目也隨之終止。 但是,由Brian Behlendorf 和 Cliff Skolnick這兩位老兄,帶領一班民間的小伙伴,繼續為這個項目以補?。╬atch)的形式進行維護,修復bug等等。
因此他們也戲稱為,a pachey server , 意思為一群補丁拼起來的服務器。 后來,由于apache 直升機比較酷,所以也就使用apache這個名字當然現在,apache 已經不僅僅是httpd而已,apache是一個軟件基金會。
目前的版本: httpd-1.3, httpd-2.0, httpd-2.2, httpd-2.4
2. httpd是高度模塊:
core + modules : 包含兩種功能特性模塊
DSO: Dynamic Shared Object (可以單獨編譯,并且需要時直接掛載使用)
MPM: Multipath Processing Modules (多道處理模塊,非一個模塊,而是一種功能特性 )
3. MPM的模型
1) web服務的基本模型
2) httpd 并行模型
prefork : 一個進程,一個請求。 在空閑時,會有一定數量進程待命, 進程間需要切換。
1) 響應進程由主進程復制,為了節省響應時間,在空閑時會預先生成一定數量的空閑進程預備
2) 當任務響應完畢后,部分進程會被回收成為空閑進程,超出空閑進程上限的進程將被銷毀
3) 每個進程間不能通信,消耗同等資源
4) 進程間調度,需要消耗CPU時長
worker: 一個進程多個線程,一個線程一個請求, 線程間同樣需要切換。
1) 一個進程可以管理多個線程,有上限
2) 每個進程所管理的線程可進行資源交換,但是有時會發生資源征用
3) 線程需要調度,消耗CPU時鐘周期
event: 一個線程,多個請求,event driven, 實現帶線程響應多個請求。
4. httpd 功能特性
1) 路徑別名: alias
2) 用戶認證: authentication
3) 虛擬主機(virtual host ): 一臺主機可以建立多個站點
4) 反向代理: 負載均衡
5) 用戶站點: CGI , Common Gateway Interface
二、httpd的基本安裝和組件組成
1. httpd的快速安裝
# yum -y install httpd
2. 生成的重要目錄
/etc/httpd 配置文件所在位置 /etc/httpd/conf 主配置文件 /etc/httpd/conf.d 配置文件的片段 /etc/httpd/logs -> ../../var/log/httpd 日志文件鏈接 /etc/httpd/modules -> ../../usr/lib64/httpd/modules 模塊鏈接 /etc/logrotate.d/httpd 日志滾動腳本配置位置 /etc/rc.d/init.d/httpd 服務腳本 /etc/sysconfig/httpd 腳本的配置文件 /var/www 服務跟目錄 /var/www/html 默認文檔根目錄 Docroot /var/www/cgi-bin/ cgi腳本所在位置
3. 服務啟動
# service httpd start # ss -tnlp
TCP/80 端口已被監聽
# pstree
# ps -elFH
需要在內核上創建小于1023端口只能是管理員用戶
屬主為管理員用戶的httpd進程,為主進程,其余屬主為apache的為工作進程
此時,httpd服務已然啟動, 瀏覽器中輸入服務器IP, 將會開啟測試頁
在/var/www/html下面創建一個簡單主頁,使用telnet嘗試請求
[root@www ~]# telnet 192.168.233.128 80 Trying 192.168.233.128... Connected to 192.168.233.128. Escape character is '^]'. GET a.html http/1.1 Host: 192.168.233.128
原創文章,作者:以馬內利,如若轉載,請注明出處:http://www.www58058.com/3945