Jusene's Blog

httpd-2.4配置

字数统计: 724阅读时长: 3 min
2017/03/26 Share

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
毫秒级持久连接时长定义

CATALOG
  1. 1. httpd-2.4
  2. 2. 新特性
  3. 3. 安装httpd-2.4
  4. 4. 配置应用
    1. 4.1. 切换使用mpm
    2. 4.2. 基于ip的访问控制
    3. 4.3. 虚拟主机
    4. 4.4. 持久连接毫秒级