Apache服务之httpd2.4配置

CentOS7 配置 httpd2.4 服务

Apache服务之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