Apache服务之httpd2.4配置
CentOS7 配置 httpd2.4 服务

1. httpd2.4 介绍
新特性
- (1) MPM支持运行DSO机制,以模块形式按需加载
- (2) 正式支持event MPM机制
- (3) 支持异步读写
- (4) 支持每模块及每个目录分别使用各自的日志级别
- (5) 每请求配置,
如果某个模块存在、某个文件存在、请求某个文件等触发配置 - (6) 增强版的表达式分析器, 提高正则表达式效率
- (7) 支持毫秒级的keepalive timeout
- (8) 基于主机名(FQDN)的虚拟主机不再需要NameVirtualHost指令
- (9) 支持用户自定义变量
新模块
- (1) mod_proxy_fcgi:提供fastCGI支持
- (2) mod_ratelimit:提供速率限制
- (3) mod_remoteip:提供远端IP控制
注意事项
- 不再支持使用Order, Deny, Allow来做基于 IP 的访问控制,使用Require的方式进行访问控制
2. httpd2.4 安装
CentOS6一般通过编译安装httpd2.4版本
httpd2.4依赖
- httpd2.4依赖于apr-1.4+、apr-util-1.4+以上的版本,apr-icon可选
- apr(apache portable runtime apache)表示运行时环境,用于兼容多平台
CentOS6特性
- 默认的依赖包为apr-1.3.9、apr-util-1.3.9不符合httpd2.4的要求
- 如果冒然升级CentOS6系统自带的apr会导致服务不可用,所以建议保留老版本并且安装新版本的包
安装编译步骤
# (1) 安装开发环境,安装pcre-devel yum groupinstall "Development Tools" "Server Platform Development" yum install pcre-devel 1. (2) 下载1.4+版的apr tar -xjvf ./configure --prefix=/usr/local/apr # 目录不一样是因为方式和系统的apr冲突 make && make install 1. (3) 下载1.4+版的apr-util 1. apr-util是apr的扩展,需要针对于apr安装,所以使用with进行依赖安装 apr-util ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install 1. (4) 创建用户和属组 groupadd -r apache useradd -r -g apache apahce yum install pcre-devel # centos6默认不会安装,提供--with-pcre功能 1. (5) 编译配置文件 ./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 1. (6) 启动服务 1. 首先关闭系统的httpd服务,否则会占用80端口 /usr/local/apache/bin/apachectl # 不要使用rpm包的apachectl命令,应该使用全路径 1. 配置之后可以使用不指定全路径 vim /etc/profile.d/httpd.sh export PATH=/usr/local/apache/bin/apachectl:$PATH . /etc/profile.d/httpd.sh 1. 自己编译的httpd没有server服务脚本,可以使用apachectl进行启动此外 1. 服务启动脚本,可以借鉴系统rpm包中的httpd启动脚本 apachectl
3. 配置文件
这里主要讲的是CentOS7上编译安装的httpd服务配置,如果使用yum进行安装,则和CentOS6配置几乎一致。
- 推荐使用yum进行安装,不然自行编译很难进行大规模部署
- 如果想使用httpd2.4就直接升级系统到centos7,不建议自行编译安装,除非需要使用新特性
配置文件
- 主配置文件
- /etc/httpd/conf/httpd.conf
- 会加载conf.modules.d下的模块
- 模块配置文件
- /etc/httpd/conf.modules.d/*.conf
- 动态模块的存放位置,编号是为了排序
- 辅助配置文件
- /etc/httpd/conf.d/*.conf