Python共享主机

时间:2013-01-22 19:51:39

标签: python django hosting shared

我希望能够在我工作的公司使用Python和Django作为Web应用程序。我们目前使用PHP,因为每个人都熟悉它,并且易于为大量客户端部署。我们可以在一个虚拟服务器上托管10到100个网站。

是否可以通过单个Apache和Python安装服务多个网站?每个网站都必须拥有自己的域名,例如电子邮件帐户。

3 个答案:

答案 0 :(得分:3)

我不会使用Apache,目前最好的做法是代理对uWSGI服务器的请求的Nginx前端。阅读有关uWSGI Emperor模式的信息。它非常多才多艺。 http://uwsgi-docs.readthedocs.org/en/latest/Emperor.html。每个应用都可以修改,删除动态添加。我们在PythonAnywhere使用它来为数千个Web应用程序提供服务

您还可以使用其他WSGI服务器。根据我的经验,uWSGI似乎是最具扩展性的。

答案 1 :(得分:2)

是的,这绝对有可能。在我们的设置中,通常我们django后面会mod_wsgiApachenginx

您可以配置apache的Virtualhost,以指向特定mod_wsgi,而{{1}}又指向特定代码。

引自here - 有关详细信息,请参阅SO帖子。

  

您可以尝试从一个方法中尝试至少两种方法   实例:

     
      
  1. 使用apache + mod_wsgi并使用WSGIApplicationGroup和/或   WSGIProcessGroup指令。我以前从未需要这些,所以不能   要完全确定这些将按您想要的方式工作,但无论如何   你绝对可以在守护进程模式下使用mod_wsgi来大大提高   你的记忆足迹。

  2.   
  3. 您可以使用Django中间件来拒绝/允许基于的URL   请求主机名(请参阅Django文档中的HttpRequest.get_host())。   就此而言,即使它会受到轻微的性能影响,   你可以在你检查传入的所有视图上放置一个装饰器   宿主

  4.   

答案 2 :(得分:1)

是的,您可以使用单个Apache / mod_wsgi安装轻松地提供许多站点。通常,您可以为每个网站使用单独的虚拟主机部分。请参阅virtualhost docs。您希望在每个虚拟主机配置中使用不同的servername指令来指定将哪些主机名路由到哪个配置。请参阅name based virtual hosts

中的更详细文档