我被告知 wsgi 是要走的路,而不是 mod_python。但更具体地说,您将如何设置您的多网站服务器环境?选择网络服务器等?
schmilblick
问问题
1383 次
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 回答