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相同端口不同域名
//记得把文件拖出来修改,之后再拖进去
搞完就可以直接用域名登录网页了