apache 如何在一台机器上管理/合并多个服务器?

clj7thdc  于 2023-08-07  发布在  Apache
关注(0)|答案(2)|浏览(198)

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服务器,以便在工作中从我的Windows7笔记本电脑托管它(我是一个编码的工程师,实际上并不是被雇来做“软件家伙”的)为了避免冲突,我对每个服务器使用了8000范围内的不同端口号来监听,并发送给我的同事像http://machinename.domain.com:8042这样的链接来访问我创建的这些神奇的东西。
第一个明显的问题是,我在命令提示符外运行很多这样的东西,只是让它在我的桌面上打开。我也知道如何从VBScript调用cmd.exe来隐藏命令提示符,如果这就是我想要的。许多内置的web服务器甚至有作为服务运行的选项,这可以获得harry与权限。但更接近于托管任何类型的服务器的“正确”方式。
更大的问题是我用不同的端口号向人们发送指向我的计算机的链接。我可以接受他们必须使用我的计算机名-我假设我需要网络管理员添加一个DNS条目,将其命名为TeamAwesome.company.com,而不是machinename.company.com:8000?
更大的问题是,如果我使用Apache、Django或Flask Web服务器,我是否可以将其设置为machinename.company.com/tractrac服务器使用machinename.company.com/hg/project1项目1的HG存储库使用www.example.com?我正在考虑Apache、Django和Flask,因为我已经钻研Python两年了,它们似乎最适合/最接近我的需求。
我知道理想的情况下这些东西应该托管在一个单独的linux服务器上,但是在我向老板(他雇我做工程,而不是编程,或者web开发,或者系统管理等)请求服务器资源之前,我需要证明我正在开发的工具的有用性。
我看到this看起来是相关的。http代理、虚拟主机、nginx和WebSockets是要看的吗?
看看Apache VirtualHost examples看起来很有希望,虽然我不能破译这些例子中是否有一个真的做了我所说的。感谢任何建议,因为我进一步深入兔子洞与这件事!

7nbnzgx9

7nbnzgx91#

Apache虚拟主机可以通过监听ip和/或端口号来区分,如果你想让这些服务单独运行,mod_proxy模块可以做你想做的事情:

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

但是,如果您只是想将不同的url指向服务器上不相关的文件夹,那么请检查Location和Alias指令

0lvr5msh

0lvr5msh2#

不需要设置代理。您可以使用单个虚拟服务器,但在某个子目录下运行每个应用程序:例如,对于Django或其他wsgi应用程序,您只需将WSGIScriptAlias设置为相关的目录。
不过,有一点需要澄清:Django在任何方面都不是一个服务器,事实上,你需要Apache或类似的东西来为Django提供服务。

相关问题