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 编码等)

关联知识

备注

  • 本书为 2002 年版本,mod_python 后续已停止维护
  • 现代替代方案:mod_wsgi、uWSGI、Gunicorn
  • 适合理解 Apache + Python 集成原理和历史演进