繁体   English   中英

您将如何设置具有多个虚拟主机的python Web服务器?

[英]How would you set up a python web server with multiple vhosts?

有人告诉我wsgi是可行的方法,而不是mod_python。 但更具体地说,您将如何设置多网站服务器环境? 选择网络服务器等?

Apache + mod_wsgi是一个常见的选择。

这是一个简单的虚拟主机示例,它设置为将对/ 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指令来分隔不同虚拟主机的处理程序。 如果您需要在不同的用户下运行虚拟主机的脚本,则需要使用WSGIDaemonProcess而不是嵌入式Python解释器。

application.py将在运行时将WSGI保留为可调用的全局“ application”变量。 您还可以添加“主要运行”页脚以与老式CGI兼容:

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

application= MyApplication()

if __name__=='main':
    import wsgiref.handlers
    wsgiref.handlers.CGIHandler().run(application)

我建议将Nginx用于Web服务器。 快速简便地设置。

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

提示,希望对您有所帮助。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM