一、httpd-2.4特性概述
参考官网信息:http://httpd.apache.org/docs/2.4/new_features_2_4.html
1.httpd-2.4官方公布新特性(全)
(1)MPM支持运行DSO机制;以模块形式按需加载;
(2) 支持事件驱动,eventMPM模块生产环境可用;
(3) 支持异步读写;
(4) 支持每个模块及每个目录单独日志级别定义;
(5) 每个请求相关的专业配置;<If>
(6) 增强版的表达式分析器;
(7) 支持毫秒级的持久连接时间限制定义(keepalivetimeout);
(8)基于FQDN的虚拟主机不再需要NameVirtualHost指令;
(9) 支持新的指令,AllowOverrideList
(10) 支持用户自定义变量;
(11) 降低对内存的消耗
2.新模块(部分)
(1) mod_proxy_fcgi:反向代理时支持apache服务器后端协议的模块
(2) mod_proxy_scgi:代理时支持python服务器后端协议的模块
(3) mod_proxy_express:基于表达式完成动态代理配置
(4) mod_remoteip:基于IP的访问控制机制被改变
修改了一些配置机制:不再支持使用Order,Deny, Allow来做基于IP的访问控制;
… ...
二、CentOS 7 RPM安装配置httpd-2.4
主配置文件:/etc/httpd/conf/httpd.conf
模块配置文件:/etc/httpd/conf.modules.d/*.conf
辅助配置文件:/etc/httpd/conf.d/*.conf
1.切换使用MPM
1) mpm:以DSO机制动态模块提供,配置文件00-mpm.conf
[[email protected] ~]# vim /etc/httpd/conf.modules.d/00-mpm.conf启用模块配置信息
LoadModulempm_NAME_module modules/mod_mpm_NAME.so
NAME:prefork, event, worker
2)服务控制:systemctl{start|stop|restart|status|reload} httpd.service
2.修改‘Main‘ server的DocumentRoot
默认不能访问DocumentRoot定义的任意网页,必须明确授权
必须定义<Directory> … ...<Directory>容器作控制权限
3.基于IP的访问控制法则
(1)全部设定
允许所有主机访问:Requireall granted
拒绝所有主机访问:Requireall deny
(2)控制特定IP访问
Require ip IPADDR:授权指定来源地址的主机访问
Require not ip IPADDR:拒绝指定来源地址的主机访问
IPADDR:
IP:172.16.100.2
Network/mask:172.16.0.0/255.255.0.0
Network/Length:172.16.0.0/16
Net:172.16
(3)控制特定主机(HOSTNAME)访问
Requirehost HOSTNAME:授权指定来源的主机访问;
Requirenot host HOSTNAME:拒绝
其中HOSTNAME可以有如下格式表示:
FQDN:特定主机
domin.tld:指定域名下的所有主机
注意:定义多条控制指令需要使用容器<RequireAll> … ...</RequireAll>来写
例如:<RequireAll>
Requireall granted
Requirenot ip 172.16.100.2
</RequireAll>
4.虚拟主机配置
基于FQDN的虚拟主机也不再需要NameVirutalHost指令;
<VirtualHost*:80>
ServerNamewww.b.net
DocumentRoot"/apps/b.net/htdocs"
<Directory"/apps/b.net/htdocs">
OptionsNone
AllowOverrideNone
Requireall granted
</Directory>
</VirtualHost>
注意:任意目录下的页面只有显式授权才能被访问;
5.SSL模块:无多少变化
#yum install -y mod_ssl
6. 毫秒级持久连接时长定义:KeepAliveTimeout #ms