从哪里开始?多个网站,相同的 IP 和端口,相同的 SSL,在 Apache 2.4、Ubuntu、EC2 上,在 AWS ELB 后面?

从哪里开始?多个网站,相同的 IP 和端口,相同的 SSL,在 Apache 2.4、Ubuntu、EC2 上,在 AWS ELB 后面?

当前情况:我的公司运行多个单独的 EC2 实例,使用来自公共顶级域名的多个子域名来托管独特的网站。(例如 abc.foo.com 和 def.foo.com)。

目前,这些网站均独立执行 SSL 卸载,但使用通用证书。我们目前运行 Ubuntu LTS,包括 10.04、12.04 和 14.04,均运行 Apache(2.2 或 2.4)。

我们的系统使用 VHost 文件在实例上建立站点,在少数运行多个站点的实例上,我们使用具有不同端口和文档根目录的多个 VHost(abc.foo.com 为 :80 /var/www/abc,def.foo.com 为 :81 /var/www/def)。所有这些实例运行时使用的可用资源不到 2%,并且全部来自同一个整体代码库。

期望的最终状态:我想使用 Apache 2.4 将所有未使用的小型服务器合并到单个 Ubuntu 14.04 服务器中,并在 AWS 中的单个 ELB 上运行所有这些站点,由 CloudFront 提供前端和缓存,其中 SSL 卸载发生在 ELB 上。

问题:我不知道该怎么做……有没有办法让多个站点使用相同的 IP 和端口,并可以使用 ELB 进行前端?由于 Apache 无法使用具有相同 IP/端口的 VHost 启动,我甚至不知道从哪里开始,而且我的一些基本 Google 搜索也没有找到此类场景的任何示例或讨论。

答案1

您可以在 Apache 上拥有不同的 VHost,所有 VHost 都监听相同的 IP 和端口。这就是大型托管服务提供商的工作方式:他们拥有一个大型 Apache 服务器和许多使用端口 80 和相同 IP 上的 VHost 的域。

我将为每个子域创建一个虚拟主机,所有子域都位于端口 80 上,并将每个子域的具体配置放在 VHost 配置块上。虚拟主机指南来自阿帕奇数字海洋非常好,很详细,我认为你可以向他们学习并运用它们。

这并不难,你可以做到。

相关内容