httpd是apache的超文本傳輸協定(http)伺服器的主程式。被設計為一個獨立運作的背景程序,它會建立一個處理請求的子程序或線程的池。
通常,httpd的不應該被直接調用,而應該在類unix的系統中由的apachectl調用,在windows中作為服務運作。
本文主要介紹的httpd的兩大版本,httpd-2.2和httpd-2.4。
centos6系列的版本預設提供的是的httpd-2.2版本的rpm包
centos7系列的版本預設提供的是的httpd-2.4版本的rpm包
2.1 httpd的特性
httpd的有很多特性,下面就分别來說說的httpd-2.2版本和的httpd-2.4版本各自的特性。
httpd-2.2的特性
事先建立程序
按需維持适當的程序
子產品化設計,核心比較小,各種功能通過子產品添加(包括php),支援運作時配置,支援單獨編譯子產品
支援多種方式的虛拟主機配置,如基于ip的虛拟主機,基于端口的虛拟主機,基于域名的虛拟主機等
支援https協定(通過mod_ssl子產品實作)
支援使用者認證
支援基于ip或域名的acl通路控制機制
支援每目錄的通路控制(使用者通路預設首頁時不需要提供使用者名和密碼,但是使用者通路某特定目錄時 需要提供使用者名和密碼)
支援url重寫
支援mpm(multi path modules,多處理子產品)。用于定義httpd的工作模型(單程序、單程序多線程、多程序、多程序單線程、多程序多線程)
httpd-2.4的新特性:
mpm支援運作dso機制(dynamic share object,子產品的動态裝/解除安裝機制),以子產品形式按需加載
支援event mpm,eventmpm子產品生産環境可用
支援異步讀寫
支援每個子產品及每個目錄分别使用各自的日志級别
每個請求相關的專業配置,使用來配置
增強版的表達式分析器
支援毫秒級的keepalive timeout
基于fqdn的虛拟主機不再需要namevirtualhost指令
支援使用者自定義變量
支援新的指令(allowoverridelist)
降低對記憶體的消耗
2.2 httpd-2.4新增的子產品
的httpd-2.4在之前的版本基礎上新增了幾大子產品,下面就幾個常用的來介紹一下。
3.1 httpd自帶的工具程式
3.2 rpm包安裝的httpd程式環境
mpm:以dso機制提供,配置檔案為/etc/httpd/conf.modules.d/00-mpm.conf
3.3 web相關的指令
3.3.1 curl指令
curl是基于url文法在指令行方式下工作的檔案傳輸工具,它支援ftp,ftps,http,https,gopher,telnet,dict,file及ldap等協定。
curl支援以下功能:
https認證
http的post/put等方法
ftp上傳
kerberos認證
http上傳
代理伺服器
cookies
使用者名/密碼認證
下載下傳檔案斷點續傳
socks5代理伺服器
通過http代理伺服器上傳檔案到ftp伺服器
3.3.2 httpd指令
//這裡的http壓縮包可以用curl指令或者wget指令去apache網站下載下傳
切換使用mpm(編輯/etc/httpd/conf.modules.d/00-mpm.conf檔案):
loadmodule mpm_name_module modules/mod_mpm_name.so
name有三種,分别是:
prefork
event
worker
通路控制法則:
ipaddr的類型
ip:192.168.1.1
network/mask:192.168.1.0/255.255.255.0
network/length:192.168.1.0/24
net:192.168
hostname的類型
fqdn:特定主機的全名
domain:指定域内的所有主機
注意:httpd-2.4版本預設是拒絕所有主機通路的,是以安裝以後必須做顯示授權通路
示例:
虛拟主機:
虛拟主機有三類:
相同ip不同端口
不同ip相同端口
相同ip相同端口不同域名
ssl:
啟用子產品:編輯/etc/httpd/conf.modules.d/00-base.conf檔案,添加下面這行,如果已經有了但是注釋了,則取消注釋即可
<code>loadmodule ssl_module modules/mod_ssl.so</code>
先啟用子產品
配置相同ip相同端口不同域名
//記得把檔案拖出來修改,之後再拖進去
搞完就可以直接用域名登入網頁了