如何使用 Apache2.4 在 Azure 的 443 端口上运行多个网站?

如何使用 Apache2.4 在 Azure 的 443 端口上运行多个网站?

我在 Azure 上创建了一个运行 Ubuntu 14.04 的 VM,并安装了一个 LAMP 堆栈。在 Azure 中,您有一个所谓的 enpoint 配置管理器,它基本上可以让您将传入请求从一个端口重定向到托管机器上的另一个端口。因此,我在端口 81 上部署了我的第一个网站,并从 443 重定向到 81,以使其与 SSL 证书一起工作。现在,我在端口 82 上配置了我的第二个网站,它使用 http 工作正常,但现在我如何将 SSL 绑定到它?由于我有一个弹性 IP,我必须将我的 DNS 记录绑定到机器的 CNAME,例如名为“mymachine.cloudapp.net:port”。我对 DNS / SSL / 等不太有经验。所以我认为一定有一种方法我还不知道。到目前为止,我唯一的想法是为每个网站创建一台机器,这肯定不是最好的解决方案。使用谷歌,我找到了很多适用于 IIS 的解决方法,但没有适用于 Apache 2.4 的方法……

答案1

首先,SSL 只是一种协议,您可以使用任何您想要的端口。因此回答您的问题:

如何将 ssl 绑定到它?

嗯,你几乎需要购买一个 SSL 并为该站点和该端口设置它(因此基本上你会为你想要的每个 URL 和端口组合都有一个 SSL(显然,你可以为具有相同基本 URL 的多个站点使用 SSL 证书)。所以你只需要编辑 Apache配置文件文件将每个应用程序(DocumentRoot)重定向到不同的端口。

现在,我的建议是始终使用标准端口:80 和 443(出于多种原因,例如:心理健康、标准等)。我们在现实世界中实际做的是,我们有一台服务器托管多个具有一个或多个 ServerName 的 VirtualHost,您可以购买它们,也可以只拥有一个基本 URL,然后为该域添加后缀或前缀。

例如,我的基域如下:

https://example.com -> /www/mainApp
https://admin.example.com -> /www/adminApp
https://api.example.com -> /www/Api

或者如果你去购买域名,你可能会得到如下结果:

https://example1.com -> /www/mainApp
https://example2.com -> /www/adminApp
https://example3.com -> /www/Api

因此,基本上我会获得三个 SSL 证书,每个应用程序一个,并且您必须配置 Apache 来响应该域名并转到您需要提供的应用程序,这几乎可以解决您的问题。

您可以阅读更多有关如何配置它的信息这里

请亲自尝试一下,如果遇到任何问题请告诉我们。我还建议您阅读更多关于Apache 虚拟主机

相关内容