httpd-2.4
新特性: 1. MPM支持运行DSO机制,以模块形式按需加载 2. 支持event MPM 3. 支持异步读写 4. 支持每模块及每个目录分别使用各自的日志级别 5. 每请求配置 <If>
6. 增强版的表达式分析器 7. 支持毫秒级的keepalive timeout 8. 基于FQDN的虚拟主机不再需要NameVirtualHost指令 9. 支持用户自定义变量
新模块
1. mod_proxy_fcgi
2. mod_ratelimit
3. mod_remoteip
修改了一些配置机制:
不再支持使用Order, Deny, Allow来做基于IP的访问控制
需要在CentOS6上编译安装httpd2.4可以参考之前博文:https://www.cnblogs.com/ckh2014/p/10777961.html
CentOS7默认自带yum源可以直接安装httpd2.4
httpd2.4:
配置文件:
主配置文件: /etc/httpd/conf/httpd.conf
模块配置文件: /etc/httpd/conf.modules.d/*.conf
辅助配置文件: /etc/httpd/conf.d/*.conf
mpm: 以DSO机制提供,配置文件00-mpm.conf
服务控制: systemctl {start|stop|restart|status|reload} httpd.service
配置:
1.切换使用MPM
# vim /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_event_module modules/mod_mpm_event.so //打开event模块
# httpd -M //查看模块
2. 修改'Main' server的DocumentRoot
DocumentRoot "/www/htdocs"
<Directory "/www/htdocs">
Require all granted
</Directory>
3. 基于ip的访问控制法则
允许所有主机访问: Require all granted
拒绝所有主机访问: Require all deny
控制特定IP访问:
Require ip IPADDR: 授权指定来源地址的主机访问
Require not ip IPADDR: 拒绝指定来源地址的主机访问
IPADDR:
IP: 192.168.1.101
Network/Mask: 192.168.1.0/255.255.255.0
Network/Length: 192.168.1.0/16
Net: 192.168.1
控制特定主机(HOSTNAME)访问
Require host HOSTNAME
Require not host HOSTNAME
HOSTNAME:
FQDN:特定主机
DOMAIN: 指定域内的所有主机
实例:
<RequireAll>
Require all granted
Require not ip 10.252.46.165
</RequireAll>
4. 虚拟主机
基于IP、Port和FQDN都支持
基于FQDN的不再需要NameVirtualHost指令
直接在conf.d目录下创建.conf文件,添加VirtualHost容器,实现虚拟主机
5. ssl
启用模块
LoadModule ssl_module modules/mod_ssl.so
6. 服务脚本
参考CentOS6上编译安装httpd2.4中的添加服务脚本内容