mod_pythonは、
Pythonを
Apache HTTP Serverに統合するためのモジュールです。主な目的は、
Webサーバー上で
Pythonスクリプトを実行する際のCGIの代替となることです。CGIと比較して、高速な実行速度や、複数のセッションを跨いで情報を保持できる点が大きな特徴です。
mod_pythonの特徴
通常のCGIでは、クライアントからの接続ごとに新しい
プロセスが開始されます。これは小規模から中規模のトラフィックのサイトでは問題ありませんが、高トラフィックのサイトではパフォーマンスが低下する原因となります。FastCGIなどCGIの性能を改善する手法はありますが、
Webサーバー自体に言語を埋め込む専用モジュールを利用する方が、より効率的な場合があります。mod_pythonは、そのようなニーズに応えるために設計されました。
CGIとは異なり、mod_pythonではスクリプトの実行後も
プロセスが終了しないため、データベース接続などの情報を永続的に保持できます。これにより、スクリプト実行のオーバーヘッドを大幅に削減できます。
さらに、mod_pythonのモジュールは
Webサーバーに深く統合されているため、
C言語で記述されたApacheモジュールと同様の機能を利用できます。例えば、HTTP以外のプロトコルの実装、リクエストやレスポンスのフィルタリング、ドキュメントのコンテンツタイプの決定などが可能です。
また、mod_pythonはApacheのコアシステムと直接やり取りできるインターフェースを提供します。これにより、Apacheの設定ファイル内で
プログラマーが指定したハンドラによって、特定
ディレクトリに対するクライアントのリクエストを、Apacheではなくmod_pythonで処理することができます。この際、リクエストはmod_pythonの "Main" 関数に渡され、一括して処理されます。
加えて、mod_pythonには、ASP、PHP、JavaServer Pages(JSP)に類似した、
PythonコードをHTMLページに埋め込む
Python Server Pages(PSP)機能も含まれています。
歴史
mod_pythonの最初のバージョンは、2000年にGregory Trubetskoyによってリリースされました。2002年9月には、Apache Software Foundationに寄贈され、
Apache HTTP Serverの一部となりました。2013年11月13日にはバージョン3.5.0がリリースされ、正式に
Python 3系列のサポートが開始されました。
現在の状況
現在、mod_pythonは活発な開発が行われているわけではありません。しかし、それはメンテナンスが終了したことを意味するのではなく、mod_pythonが十分に完成された状態であり、ほとんどメンテナンスの必要がないためです。この事実は、mod_pythonの安定性と完成度の高さを物語っています。
関連情報
関連項目
Apache HTTP Server
mod wsgi
mod_jk(英語)
mod_perl(英語)
mod_parrot(英語)
Spyce(英語)
外部リンク
Official mod_python website
mod_python Tutorial
*
mod_python manual