在同一服务器上的docker上运行两个Laravel应用程序并指向子域

时间:2019-09-01 12:36:10

标签: laravel amazon-web-services docker devops

如何在同一服务器上使用每个应用程序一个容器运行两个Laravel Docker应用程序,并指向两个域?

两个应用程序都位于同一台AWS ec2服务器上

例如: 容器一指向-> one.mydomain.com 容器指向-> two.mydomain.com

的两个点

我是这个新手。

有可能吗?

最好使用Apache解决方案。

1 个答案:

答案 0 :(得分:1)

是的,这是一种可能的方式,也是一种不同的方式,建议使用AWS服务。

  • 为每个应用程序使用AWS负载均衡器和Host-based路由以及不同的端口发布

  • Nginx

使用AWS方法时,您需要使用ECS运行容器。

  • 创建负载均衡器
  • 创建集群
  • 创建服务
  • 附加到负载均衡器的服务,并将负载均衡器路由更新为基于主机的路由app1.example.com,将路由到app1

对app2重复上述步骤。

以上是使用AWS处理容器的标准方法。

您可以详细了解此gentle-introduction-to-how-aws-ecs-works-with-example-tutorialRun containerized applications in production

使用Nginx,您需要自己管理一切。

  • 在EC2上运行两个容器
  • 安装Nginx
  • 更新Nginx配置以基于DNS路由流量
  • 更新DNS条目并将指向EC2实例的公共IP,例如app1.example.comapp2.example.com的DNS都将指向相同的EC2实例,但是Nginx将决定哪个应用将服务于该请求。
server {
  server_name app1.example.com;
  location / {
    proxy_pass http://127.0.0.1:HOSTPORT;
  }
}
server {
  server_name app2.example.com;
  location / {
    proxy_pass http://127.0.0.1:HOSTPORT;
  }
}

我将推荐这两种方法,Nginx而非apache,但如果您有兴趣,可以查看此apache-vhosts