可能重复:
在 80 端口上运行两个服务
我有一台 QNAP TS-459 Pro II,它带有一个在端口 80 上运行的 Apache 网络服务器。
我也想经营一家小西纳特拉app;也在端口 80 上。
我希望 Apache 能够提供example.com
和foo.example.com
,但我希望 Sinatra 能够提供bar.exapmle.com
。
是否可以让两个 Web 服务器在同一端口上运行但仅根据特定的域绑定进行应答?
答案1
一次只能有一个应用程序打开特定的端口/IP 组合,但您可以通过将 Apache 设置为反向代理来近似实现您的需要。
亮点 -
- 在端口 80 上运行 Apache,并启用 mod_proxy
- 不要打开 ProxyRequests(这仅适用于正向代理)
- 在不同的端口和/或 IP 上运行其他应用程序
- 使用 Apache 虚拟主机和反向代理配置将流量引导到适当的站点。
您可以查看这些链接了解更多信息 -
答案2
不,除非您的服务器上有两个不同的公共 IP,每个服务器都可以绑定到这两个 IP。然后每个服务器都需要明确侦听特定的 IP/端口组合,这样它才能“正常工作”。
如果你只能访问单个 IP 地址,则通常的解决方案是在不同的端口上设置 Sinatra 服务器(localhost:808*
很流行),然后使用mod_proxy
在 Apache 中内部管理您的 Sinatra 服务器域。