httpd-2.4
httpd-2.4是最新的httpd版本,大致配置与httpd-2.2相同,但也有少许的不同,这里列举下不同的配置,后面持续完善。
新特性
- (1)MPM支持运行为DSO机制;以模块形式按需加载
- (2)event MPM生产环境可用
- (3)异步读写机制
- (4)支持每模块及每目录的单独日志级别定义
- (5)每请求相关的专用配置
- (6)增强版的表达式分析式
- (7)毫秒级持久连接时长定义
- (8)基于fqdn的虚拟主机也不再需要NameVirtualHost
- (9)新指令,AllowOverrideList
- (10)自定义变量
- (11)更低的内存消耗
安装httpd-2.4
依赖apr-1.4+,apr-util-1.4+ [apr-icon]
apr:apache protable runtime 相当于apache的底层虚拟机,具有跨平台能力
CentOS 6:
默认:apr-1.3.9 apr-util-1.3.9
1 | 编译安装步骤: |
2 | (1)apr-1.4+ |
3 | ./configure --prefix=/usr/local/apr |
4 | make && make install |
5 | (2)apr-util-1.4+ |
6 | ./configure --prefix=/usr/local/apr-util |
7 | make && make install |
8 | (3)httpd-2.4 |
9 | ./configure |
10 | --prefix=/usr/local/httpd=2.4 |
11 | --sysconfig=/etc/httpd24 |
12 | --enable-so #启用dso |
13 | --enable-ssl #启用ssl |
14 | --enable-cgi #启用cgi |
15 | --enable-rewrite #启用url重写 |
16 | --with-zlib #启用压缩 |
17 | --with-pcre #启用perl的正则引擎 |
18 | --with-apr=/usr/local/apr |
19 | --with-apr-util=/usr/local/apr-util/ |
20 | --enable-modules=most #加载大多数库 |
21 | --enable-mpms-shared=all #将三种模型都编译 |
22 | --with-mpm=prefork #默认启动prefork模型 |
23 | make && make install |
配置应用
切换使用mpm
centos 7 编辑配置文件/etc/httpd/conf.modules.d/00-mpm.conf,启用要启用的mpm相关的loadmodule指令即可
centos 6 编译安装的 在主配置文件中切换加载的模块,启用额外配置mpm的配置选项即可
基于ip的访问控制
允许所有主机访问: Require all granted
拒绝所有主机访问: Require all deny
控制特定的ip访问:
Require ip IPADDR: 授权指定来源的主机访问
Require not ip IPADDR: 拒绝指定来源的主机访问
控制特定主机访问:
Require host HOSTNAME: 授权指定来源的主机访问
Require not host HOSTNAME: 拒绝
HOSTNAME:
FQDN: 特指主机
domain:指定域名下的所有主机
多条控制指令需要通过容器包含
1 | <RequireAll> |
2 | RequireAll all granted |
3 | RequireAll not ip 172.16.100.2 |
4 | </RequireAll> |
虚拟主机
基于FQDN的虚拟主机不再需要 NameVirtualHost
示例:
1 | <VirtualHost *:80> |
2 | ServerName www.b.net |
3 | DocumentRoot "/app/b.net/htdocs" |
4 | <Directory '/app/b.net/htdocs'> |
5 | Options None |
6 | AllowOverride None |
7 | Require all granted |
8 | </Directory> |
9 | </VirtualHost> |
注意:任意目录下的页面只有授权才能被访问
持久连接毫秒级
KeepAlive ON|Off
KeepAlivTimeout #ms
MaxKeepAliveRequests #ms
毫秒级持久连接时长定义