项目简介
本项目基于Python语言开发,涵盖mod_h[ttp]2
和mod_proxy_h[ttp]2
两个独立构建模块,为Apache httpd提供HTTP/2支持。项目既是提前体验新特性和修复的平台,也提供完整测试框架,用于验证HTTP/2协议在Apache服务器中的实现是否符合预期。
项目的主要特性和功能
- 模块功能:
mod_h[ttp]2
自Apache 2.4.17起为官方模块,mod_proxy_h[ttp]2
于2.4.23版本加入,二者稳定且适用于生产环境。mod_proxy_h[ttp]2
属于Apache httpd代理架构,类似mod_proxy_http
,需在代理URL使用h2:
或h2c:
配置。 - 测试框架:采用
python3
和pytest
构建测试套件,覆盖连接复用、服务器推送、代理、超时、缓冲等HTTP/2协议方面。提供Python类管理Apache HTTP服务器测试环境,包括创建配置虚拟主机、生成SSL证书、启停服务器等。 - 辅助工具:包含发送HTTP请求和解析响应的辅助工具,如
curl
和nghttp
。
安装使用步骤
安装依赖
- 安装已编译的Apache httpd 2.4.34或更高版本,包含apxs和头文件。
- 安装libnghttp2,版本至少为1.7.0。
- 安装OpenSSL 1.0.2或更高版本。
- 安装Python及其开发环境,包括pytest测试框架和Apache的APR库。
获取项目文件
从项目仓库下载项目的源码文件,其中包含测试脚本、辅助库和工具。
配置环境
- 根据系统不同,安装合适的Apache 2.4.x包:
- Ubuntu:使用ppa by ondrej。
- Fedora:Fedora 23及后续版本已自带。
- Debian sid(不稳定):参考安装指南。
- Gentoo:使用最新稳定版。
- FreeBSD:可通过Apache 2.4 port或mod_http2 port安装。
- 根据测试需要,配置Apache服务器的环境,添加必要的模块和虚拟主机。
编译运行
- 若从git构建,确保使用至少autoconf 2.68:
```
autoreconf -i automake autoconf ./configure --with-apxs=
make ``` - 若要运行测试,需
pytest
、python3
和支持http2的curl
,然后执行: ```make make test ```
分析结果
运行测试脚本后,通过pytest框架执行测试,分析测试结果,包括失败的测试用例和相应的错误消息,以确定问题的根源并进行修复。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】