mod_python 手册笔记
概述
mod_python 是一个将 Python 嵌入 Apache HTTP 服务器的扩展模块,提供性能提升和 Web 应用开发的灵活性。本手册由作者 Gregory Trubetskoy 于 2002 年 4 月编写,是 mod_python 2.7.8 版本的官方文档。
核心概念
性能优势
- 将 Python 解释器直接嵌入 Apache 服务器进程
- 避免了 CGI 模式每次请求启动新进程的开销
- 实测性能提升显著(具体数字见原文)
灵活性
- 支持多种处理器类型:Publisher、CGI、ZHandler 等
- 可与 Apache 认证模块集成
- 支持服务器内部调用(Server-Side Includes)
主要内容结构
第 1 章:介绍
- 1.1 性能 — 嵌入模式的性能优势
- 1.2 灵活性 — 多种应用场景
- 1.3 历史 — 项目发展背景
第 2 章:安装
- 2.1 前置条件 — Apache 版本要求
- 2.2 编译 — 从源码构建
- 2.3 安装 — 配置 Apache
- 2.4 测试 — 验证安装
- 2.5 故障排除
第 3 章:教程
- 3.1 Apache 请求处理流程概述
- 3.2 mod_python 基本工作原理
- 3.3 认证处理示例
- 3.4 Publisher Handler 简化开发
第 4 章:Python API
- 4.1 多解释器支持
- 4.2 Handler 概述
- 4.3 apache 模块 — Apache 内部访问
- 4.4 util 模块 — 工具函数
第 5 章:Apache 配置指令
- 5.1 Handlers 配置
- 5.2 其他指令
第 6 章:标准处理器
- 6.1 Publisher Handler — 最常用
- 6.2 CGI Handler
- 6.3 Httpdapy Handler
- 6.4 ZHandler
附录
- A. Windows 安装
- B. VMS 安装
技术要点
Publisher Handler 工作原理
- 将 URL 映射到 Python 模块/函数
- 自动解析函数参数(来自 URL query string)
- 支持路径参数、查询参数绑定
配置示例
<Location /mypython>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonOption myopt value
</Location>Python API 核心对象
req— 请求对象,包含所有 HTTP 信息apache模块 — 提供 Apache C API 绑定util模块 — 通用工具函数(MD5、URL 编码等)
关联知识
- CSAPP-第2版 — Web 服务器架构
- TCP-IP详解卷1-协议 — HTTP 协议基础
- Effective-Python — Python Web 开发实践
备注
- 本书为 2002 年版本,mod_python 后续已停止维护
- 现代替代方案:mod_wsgi、uWSGI、Gunicorn
- 适合理解 Apache + Python 集成原理和历史演进