httpd-2.4:
相比httpd2.2新特性:
(1) MPM支持运行DSO机制;以模块形式按需加载;
(2) 支持event MPM;
(3) 支持异步读写;
(4) 支持每模块及每个目录分别使用各自的日志级别;
(5) 每请求配置;<If>
(6) 增强版的表达式分析器;
(7) 支持毫秒级的keepalive timeout;
(8) 基于FQDN的虚拟主机不再需要NameVirtualHost指令;
(9) 支持用户自定义变量;
新模块:
(1) mod_proxy_fcgi:快速cgi模块,cgi协议在讲解lamp的博客中有阐述(就是http实现动态网 页时,与应用程序交互的一种方式)
(2) mod_ratelimit:限速使用
(3) mod_remoteip:远端ip地址控制
修改了一些配置机制:
不再支持使用Order, Deny, Allow来做基于IP的访问控制;引入了新方法require
安装httpd-2.4
httpd依赖于apr-1.4+, apr-util-1.4+, [apr-icon]
apr: apache portable runtime:相当于apache与系统之间的兼容层,实现让同一个httpd软 件多平台运行,不用每个平台提供一种程序
CentOS 6:
centos6默认:apr-1.3.9, apr-util-1.3.9 ------->安装httpd2.4之前需要先安装apr-1.4+,
apr-util-1.4+,[apr-icon],否则不兼容,但是尽量不要覆盖原先的1.3版本,会破坏其他程序
编译安装步骤:
1.4+版的apr和apr-util
前提:安装开发环境,安装pcre-devel
(1) apr
# ./configure --prefix=/usr/local/apr(注意这里不是/usr/local/防止覆盖之前的1.3版本)
# make && make install
(2) apr-util
# ./configure --prefix=/usr/local/apr-util --with=/usr/local/apr
# make && make install
(3) httpd2.4
# groupadd -r apache
# useradd -r -g apache apahce
# ./configure --prefix=/usr/local/apache --sysconf=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
# make && make install
--enable-so:支持动态模块加载机制
--enable-rewrite:只是URL重写
--with-zlib:压缩算法库
--with-pcre:perl扩展程序包
--enable-mpms-shared:支持mpm共享模块机制
--with-mpm:默认使用哪种mpm
启动服务:
apachectl
启动脚本:复制rpm包安装的httpd程序启动脚本再修改某些参数
CentOS 7:
配置文件:
主配置文件:/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
LoadModule mpm_NAME_module modules/mod_mpm_NAME.so
NAME: prefork, event, worker
(2) 修改‘Main‘ server的DocumentRoot
(3) 基于IP的访问控制法则
允许所有主机访问:Require all granted
拒绝所有主机访问:Require all deny
控制特定IP访问:
httpd2.4默认对于定义的网页目录针对所有人不允许访问,需要显式授权 Require all granted
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
控制特定主机(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指令;
对于centos7,在conf.d目录下创建虚拟主机配置文件来管理虚拟主机,方便管理,httpd.conf主配置文件中已经调用了conf.d下面的所有文件
(5) ssl启用模块:
LoadModule ssl_module modules/mod_ssl.so
本文出自 “明天过后” 博客,请务必保留此出处http://leeyan.blog.51cto.com/8379003/1696545
原文地址:http://leeyan.blog.51cto.com/8379003/1696545