httpd的版本:

httpd-1.3:官方已经停止维护;超级稳定

httpd-2.0:

httpd-2.2:

httpd-2.4:


httpd的具体的特性:

高度模块化:Core + Modules

DSO:Dynamic Shared Object,动态共享对象;实现模块的动态装载和卸载;


模块分为两类:

static:编译到核心中的功能;如果更换静态模块,必须更换核心;所以必须重新启动服务,才能使之生效;

DSO:动态装载和卸载;重载配置即可使之生效;


MPM:Multipath Processing Modules,多道处理模块;并发响应模型在httpd应用程序中的专用的称呼;

prefork:多进程IO模型;一个主进程,多个子进程,一个进程响应一个请求;httpd的默认MPM模块;

主进程:管理子进程;创建套接字;接收用户请求,并派发给某个子进程处理...

子进程:处理请求和响应请求;


worker:复用的多进程IO模型(多线程);多进程多线程,一个线程响应一个请求;

主进程:管理子进程;创建套接字;接收用户请求,并派发给某个子进程处理...

子进程:负责管理线程;

线程:处理请求和响应请求;


event:复用的IO模型(事件驱动);多进程模型;每个进程响应多个请求;

主进程:管理子进程;创建套接字;接收用户请求,并派发给某个子进程处理...

子进程:处理请求和相应请求;


注意:

1.在httpd2.0之前,不支持event模型;

2.在httpd2.2中,event模型作为测试模型;

3.在httpd2.4中,event模型作为建议使用模型;


在CentOS 6中:httpd2.2,event模型是测试模型;不支持DSO机制的MPM;

在CentOS 7中:httpd2.4,event模型为production ready;支持DSO机制的MPM;


httpd的功能特性:

支持CGI:Common Gateway Interface,通用网关接口;

虚拟主机:

能够标识虚拟主机的方式:IP + PORT + HOSTNAME;

反向代理:Reverse Proxy

负载均衡:基于流量(bytraffic),基于业务(bybusiness),基于请求(byrequest);

路径别名的设置;

身份验证机制:

basic

digest

支持大量的第三方模块;

...


安装httpd:

rpm包:本地光盘yum源;

编译安装:定制新功能;为了安全去除带有bug或漏洞后门的模块;其他原因;


CentOS 6:httpd-2.2

启动服务:SysV init脚本,/etc/rc.d/init.d/httpd

/etc/rc.d/init.d/httpd {start|stop|restart|reload|status}

service httpd {start|stop|restart|reload|status}


开机自动启动服务:

chkconfig [--level 2345] httpd on|off


程序环境:

配置文件:

/etc/httpd/conf/httpd.conf——httpd的主配置文件

/etc/httpd/conf.d/*.conf ——httpd的辅助配置文件

/etc/httpd/conf.d/magic —— 实现MIME功能


/etc/sysconfig/httpd —— httpd服务器启动脚本的配置文件


程序文件:(二进制文件)

/usr/sbin/httpd:prefork模型;

/usr/sbin/httpd.event:event模型;

/usr/sbin/httpd.worker:worker模型;


/usr/sbin/apachectl:服务控制命令;


日志文件:

/var/log/httpd

access_log:访问日志;

error_log:错误日志;


默认站点的DocumentRoot:

/var/www/html


模块文件的路径:

/etc/httpd/modules --> /usr/lib64/httpd/modules/


CentOS 7:httpd-2.4

启动服务:Systemd Unit文件,/usr/lib/systemd/system/httpd.service

systemctl {start|stop|restart|reload|status} httpd[.service]


开机自动启动或停止服务:

systemctl enable|disable httpd.service


程序环境:

配置文件:

/etc/httpd/conf/httpd.conf ——httpd的主配置文件

/etc/httpd/conf.d/*.conf ——httpd的辅助配置文件

/etc/httpd/conf.modules.d —— 额外的模块专用的配置文件

/etc/httpd/conf.d/magic —— 实现MIME功能


/etc/sysconfig/httpd —— httpd服务器启动脚本的配置文件


程序文件:(二进制文件)

/usr/sbin/httpd:

在httpd2.4版本中,MPM支持DSO机制,每个MPM模型都有一个对应的模块;

/usr/lib64/httpd/modules/mod_mpm_event.so

/usr/lib64/httpd/modules/mod_mpm_prefork.so

/usr/lib64/httpd/modules/mod_mpm_worker.so


/usr/sbin/apachectl:服务控制命令;


日志文件:

/var/log/httpd

access_log:访问日志;

error_log:错误日志;


默认站点的DocumentRoot:

/var/www/html


模块文件的路径:

/etc/httpd/modules --> /usr/lib64/httpd/modules/