我希望能够在我工作的公司使用Python和Django作为Web应用程序。我们目前使用PHP,因为每个人都熟悉它,并且易于为大量客户端部署。我们可以在一个虚拟服务器上托管10到100个网站。
是否可以通过单个Apache和Python安装服务多个网站?每个网站都必须拥有自己的域名,例如电子邮件帐户。
答案 0 :(得分:3)
我不会使用Apache,目前最好的做法是代理对uWSGI服务器的请求的Nginx前端。阅读有关uWSGI Emperor模式的信息。它非常多才多艺。 http://uwsgi-docs.readthedocs.org/en/latest/Emperor.html。每个应用都可以修改,删除动态添加。我们在PythonAnywhere使用它来为数千个Web应用程序提供服务
您还可以使用其他WSGI服务器。根据我的经验,uWSGI似乎是最具扩展性的。
答案 1 :(得分:2)
是的,这绝对有可能。在我们的设置中,通常我们django
后面会mod_wsgi
,Apache
和nginx
您可以配置apache的Virtualhost,以指向特定mod_wsgi
,而{{1}}又指向特定代码。
引自here - 有关详细信息,请参阅SO帖子。
您可以尝试从一个方法中尝试至少两种方法 实例:
使用apache + mod_wsgi并使用WSGIApplicationGroup和/或 WSGIProcessGroup指令。我以前从未需要这些,所以不能 要完全确定这些将按您想要的方式工作,但无论如何 你绝对可以在守护进程模式下使用mod_wsgi来大大提高 你的记忆足迹。
- 醇>
您可以使用Django中间件来拒绝/允许基于的URL 请求主机名(请参阅Django文档中的HttpRequest.get_host())。 就此而言,即使它会受到轻微的性能影响, 你可以在你检查传入的所有视图上放置一个装饰器 宿主
答案 2 :(得分:1)
是的,您可以使用单个Apache / mod_wsgi安装轻松地提供许多站点。通常,您可以为每个网站使用单独的虚拟主机部分。请参阅virtualhost docs。您希望在每个虚拟主机配置中使用不同的servername指令来指定将哪些主机名路由到哪个配置。请参阅name based virtual hosts
中的更详细文档