Django 如何在一台机器上管理/组合多台服务器?

Django 如何在一台机器上管理/组合多台服务器?,django,apache,flask,virtualhost,Django,Apache,Flask,Virtualhost,TLDR: “真正的服务器”(Apache?Flask?Django?)是否能够在可读的子目录(abc.work.com/svn,abc.work.com/hg)后面统一各种服务,而不是使用端口号(abc.work.com:8000,abs.work.com:8001) 长版本: 在过去的一年中,我学习了如何使用Mongoose服务文件,运行一个最小的python Web服务器,使用Subversion和Mercurial托管版本控制存储库,以及托管一个Trac问题跟踪程序/项目管理框架 在每种

TLDR: “真正的服务器”(Apache?Flask?Django?)是否能够在可读的子目录(abc.work.com/svn,abc.work.com/hg)后面统一各种服务,而不是使用端口号(abc.work.com:8000,abs.work.com:8001)

长版本: 在过去的一年中,我学习了如何使用Mongoose服务文件,运行一个最小的python Web服务器,使用Subversion和Mercurial托管版本控制存储库,以及托管一个Trac问题跟踪程序/项目管理框架

在每种情况下,我都在使用每种工具提供的简易内置Web服务器,在工作时从我的Windows 7笔记本电脑上托管它(我是一名编写代码的工程师,实际上并不是为了成为一名“软件人”而付费)。为了避免冲突,我在8000范围内为每台服务器使用了不同的端口号进行监听,并向我的同事发送了一些链接,以访问我创建的这些神奇的东西

第一个明显的问题是,我在命令提示符下运行了很多这样的东西,只是让它在我的桌面上打开。我还知道如何从VBScript调用cmd.exe,以便隐藏命令提示符(如果这是我想要的)。许多内置Web服务器甚至可以作为服务运行,这可以获得harry的权限,但更接近于托管任何类型服务器的“正确”方式

更大的问题是,我正在用不同的端口号向我的机器发送链接。我同意他们必须使用我的机器名——我想我需要网络管理员添加一个DNS条目,将其命名为TeamAwesome.company.com,而不是machinename.company.com:8000

更大的问题是,如果我做了一些像Apache、Django或Flask Web服务器这样的事情,我可以像machinename.company.com/trac那样为trac服务器设置它,像machinename.company.com/hg/project1那样为project1的hg存储库设置它吗?我之所以选择Apache、Django和Flask,是因为我已经潜心研究Python两年了,它们似乎最适合我的需要

我知道理想情况下,这些东西应该托管在一台单独的linux-y服务器上,但我需要证明我正在开发的工具的有用性,然后再向我的老板请求服务器资源(老板雇我来做工程,而不是编程、web开发或系统管理等)

我觉得这看起来很有关联。http代理、虚拟主机、nginx和WebSockets是否值得关注


虽然我无法解释这些例子中的一个是否真的符合我所说的,但看起来很有希望。谢谢你给我的建议,我带着这些东西走得更远

Apache虚拟主机只能通过侦听ip和/或端口号来区分。 如果您希望/让这些服务单独运行,则模块可以执行您想要的操作:

 ProxyRequests Off
 <Proxy *>
     Allow from all
 </Proxy>

 ProxyPass      /folder_a       http://backend_a:1234/ retry=5
 ProxyPass      /folder_b       http://backend_b:8888/ retry=5
 # etc
ProxyRequests关闭
通融
代理过程/文件夹\u ahttp://backend_a:1234/ 重试=5
代理传递/文件夹http://backend_b:8888/ 重试=5
#等

但是,如果您只想将不同的URL指向服务器上不相关的文件夹,请检查和
别名
指令

无需代理设置。您可以使用单个虚拟服务器,但在某个子目录下运行每个应用程序:例如,对于Django或另一个wsgi应用程序,您只需将WSGIScriptAlias设置为相关的目录


不过有一点需要澄清:Django根本不是服务器。事实上,为了正确地为Django服务,您需要Apache或类似的工具。

我想我理解您的意思,如果我的wsgi应用程序是python模块,或者在查询给定子目录时可以调用的东西,但是如果我的应用程序是在某个端口上运行的另一台服务器,该怎么办?像存储库、Web服务器等所有server-y服务都可以作为wsgi应用程序存在吗?即使我可以将一些服务直接绑定到Web服务器,我仍然希望能够提供对本地端口上单独服务的内容的类似文件夹的访问,因为这听起来很有用。还是我没抓住重点?