Apache HTTP服务器的mod_wsgi扩展模块,实现了Python WSGI标准,可以支持任何兼容Python WSGI标准的Python应用。

出于安全的考虑,建议使用mod_wsgi 3.5及以后的版本,最新版本是2017年1月发布的4.5.14。


1. WSGI(Web Server Gateway Interface)是一个统一的Python接口标准(PEP 3333),该标准描述了Python应用如何与Web服务器通信,多个Python应用之间如何级联以处理请求。

WSGI的实现位于Python应用和Web服务器之间,从而支持将兼容的Python应用无缝部署到任何Web服务器上。


2. Apache服务器对Python WSGI应用的执行模式

1)embedded模式

在Apache的子进程中执行Python WSGI应用。这样,Python WSGI应用将与Apache上的其他应用共享进程。

执行性能高,但需要调整Apache MPM设置。

2)daemon模式(推荐)

Apache启动专用进程执行Python WSGI应用,但是Python WSGI应用需要提供进程监控或WSGI适配器。

执行更安全。


3. mod_wsgi扩展模块的安装

1)建议安装环境

  • Python 2.6或Python 3.3以后版本
  • Apache 2.4以后版本

2)作为Apache的一个扩展模块,以源代码安装到Apache服务器

  • wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.14.tar.gz
  • tar xvfz mod_wsgi-4.5.14.tar.gz
  • ./configure
  • make
  • make install
  • LoadModule wsgi_module modules/mod_wsgi.so
  • service httpd restart
在启动服务器之前,还需要配置Apache服务器以加载mod_wsgi扩展模块,将Web请求转发到该模块处理。

3)作为Python安装包,以源代码安装到Python的虚拟环境

  • wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.14.tar.gz
  • tar xvfz mod_wsgi-4.5.14.tar.gz
  • python setup.py install

4)作为Python安装包,从PyPI在线安装到Python的虚拟环境

  • pip install mod_wsgi

4.验证安装

利用mod_wsgi-express命令行工具,启动Apache服务器和mod_wsgi扩展模块,无需任何配置。

  • mod_wsgi-express start-server
打开浏览器,访问http://localhost:8000/


参考文献:

旧官网https://code.google.com/archive/p/modwsgi/

新官网http://modwsgi.readthedocs.io/en/develop/

源代码https://github.com/GrahamDumpleton/mod_wsgi

WSGI标准http://wsgi.readthedocs.io/en/latest/


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐