我被告知wsgi是要走的路而不是mod_python。但更具体地说,您将如何设置多网站服务器环境?选择Web服务器等?
答案 0 :(得分:4)
Apache + mod_wsgi是一种常见的选择。
这是一个简单的示例vhost,设置为将/ wsgi / something的任何请求映射到应用程序(然后可以查看PATH_INFO以选择操作,或者您正在执行调度)。根URL“/”也被路由到WSGI应用程序。
LoadModule wsgi_module /usr/local/lib/mod_wsgi.so
...
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /www/example/htdocs
WSGIScriptAliasMatch ^/$ /www/example/application.py
WSGIScriptAlias /wsgi /www/example/application.py
</VirtualHost>
如果您愿意,可以使用WSGIProcessGroup指令为不同的vhost分隔处理程序。如果您需要在不同用户下运行vhosts的脚本,则需要使用WSGIDaemonProcess而不是嵌入式Python解释器。
运行时,application.py将使您的WSGI可调用于全局“应用程序”变量中。您还可以添加一个run-as-main页脚,以便与老式CGI兼容:#!/usr/bin/env python
from mymodule import MyApplication
application= MyApplication()
if __name__=='main':
import wsgiref.handlers
wsgiref.handlers.CGIHandler().run(application)
答案 1 :(得分:1)
我建议Nginx用于Web服务器。设置快速简便。
您可能希望每个vhost都有一个unix用户 - 因此每个主目录都拥有自己的应用程序,python环境和服务器配置。这允许您安全地重新启动特定应用程序,只需通过杀死您的vhost所拥有的工作进程即可。
只是一个提示,希望它有所帮助。
答案 2 :(得分:0)
您可以使用Apache和mod_wsgi。这样,你仍然可以使用Apache对vhosts的内置支持。