1

我被告知 wsgi 是要走的路,而不是 mod_python。但更具体地说,您将如何设置您的多网站服务器环境?选择网络服务器等?

4

3 回答 3

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 脚本,则需要使用 WSGIDaemonProcess 而不是嵌入式 Python 解释器。

application.py 会在运行时将您的 WSGI 可调用留在全局“应用程序”变量中。您还可以添加一个作为主运行的页脚以与老式 CGI 兼容:

#!/usr/bin/env python
from mymodule import MyApplication

application= MyApplication()

if __name__=='main':
    import wsgiref.handlers
    wsgiref.handlers.CGIHandler().run(application)
于 2009-02-11T16:11:33.773 回答
1

我建议将 Nginx 用于 Web 服务器。快速且易于设置。

您可能希望每个 vhost 拥有一个 unix 用户——因此每个主目录都拥有自己的应用程序、python 环境和服务器配置。这使您可以安全地重新启动特定应用程序,只需杀死您的虚拟主机拥有的工作进程即可。

只是一个小窍门,希望对你有帮助。

于 2009-02-11T16:08:12.360 回答
0

您可以使用 Apache 和mod_wsgi。这样,您仍然可以使用 Apache 对虚拟主机的内置支持。

于 2009-02-11T16:11:15.020 回答