1

我有几个站点在不同的(虚拟)ubuntu 服务器上运行,如下所示:

  • mysite.mydomain.com (10.3.0.5)
  • 另一个.mydomain.com (10.3.0.7)
  • siteabc.differentdomain.eu (10.3.0.16)

我已经为所有这些支付了证书,并且正在使用 MUP(Meteor-up)来部署它们:

proxy: {
    domains: 'mysite.mydomain.com',
    ssl: {
        crt: './mysite_mydomain_com.crt',
        key: './mysite_mydomain_com.key',
        forceSSL: true
    }
}

现在我想对所有这些都使用 Lets Encrypt。我将端口 80 转发到 10.3.0.5(第一个站点),这可以正常工作(MUP 会自动创建 nginx docker 容器等),但其他的都不起作用,因为它们需要第一个站点已经使用的端口 80。

proxy: {
    domains: 'mysite.mydomain.com',
    ssl: {
        letsEncryptEmail: 'mysite@mydomain.com'
        forceSSL: true
    }
}

是否可以在同一个 ip 后面有多个域,并且仍然使用 Lets Encrypt?对于 Meteor 应用程序和 Meteor-up 部署,我将如何做到这一点?

4

1 回答 1

0

是的,简短的回答。MUP 安装一个运行 nginx 代理的 docker 镜像https://github.com/nginx-proxy/nginx-proxy

nginx-proxy 设置一个运行 nginx 和 docker-gen 的容器。docker-gen 为 nginx 生成反向代理配置,并在容器启动和停止时重新加载 nginx。

请参阅 Docker 的自动 Nginx 反向代理了解您可能想要使用它的原因。

您无需担心细节,它会根据目标 URL 自动将流量引导到正确的 docker 实例。我使用它在同一个 EC2 实例上运行多个登台/演示服务器,简单 :)

于 2020-08-10T13:57:52.350 回答