【问题标题】:How to configure subdomains with Payara and virtual servers?如何使用 Payara 和虚拟服务器配置子域?
【发布时间】:2018-04-30 14:26:17
【问题描述】:

我正在努力解决一些可能很容易做到的事情,但我还没有找到正确的解决方案,所以我希望你能帮助我。

背景

我们正在开发一个包含 4 个不同 Java Web 项目的应用程序。

  1. AppA
  2. AppB
  3. AppC
  4. 网络服务

所有这些应用程序都必须从 mydomain.com 的 4 个不同子域访问:

  1. a.mydomain.com
  2. b.mydomain.com
  3. c.mydomain.com
  4. api.mydomain.com

技术

应用服务器:Payara server 4(与 Glassfish 4 几乎相同)。

Payara 服务器在 Docker 容器中运行,而后者又在 Amazon EC2 实例中运行。

我在以下场景中使用过 Amazon Route 53:

我已经成功完成的事情

这是为另一个项目完成的,其中只有一个从 otherdomainiown.com 的子域访问的应用程序。

这非常有效,因为域提供商 (iPage) 的 DNS 记录只指向我配置的托管区域的 Amazon Route 53 记录。此托管区域有一条 A 记录,指向我的 Amazon EC2 实例的固定 IP。然后,Docker 通过端口 80(mapped)将 Payara 服务器公开到端口 8080,Payara 默认使用该端口为其应用程序提供服务。

问题

现在,我面临着类似的情况。不同之处在于我有 4 个不同的应用程序需要由 4 个不同的子域访问。

我尝试过使用虚拟服务器(虚拟主机)但没有成功,我对此并不熟悉,但我认为这可能是一个可能的解决方案。

我考虑过使用 Amazon S3 存储桶进行重定向,但我认为这不是我需要的。

在一张图片中,这应该是最后的场景,虽然为了简单起见,我只画了 2 个子域:

  • 我应该使用 Docker 映射来解决这个问题吗?
  • 我应该使用虚拟服务器吗?
  • 我应该购买 4 台不同的机器吗? (这将在几秒钟内解决所有这些问题,但购买更多实例不是一种选择)
  • 我应该为每个应用程序使用一个 Docker 容器吗?

如您所见,我有点迷茫,所以如果您能指出我正确的方向,那就太好了。

提前致谢。

【问题讨论】:

    标签: java amazon-web-services docker glassfish payara


    【解决方案1】:

    您使用 Route 53 做什么?在这种情况下,您能从中获得什么好处?

    There is a blog post on the Payara website which gives an overview of using Virtual Servers in Payara Server, but it's a bit in-depth to quote for an answer here.

    关键是您仍然需要将传入流量配置为到达在不同的子域。如果您的所有流量都来自同一个 IP 地址,就像 Route53 正在做的那样,那么区分哪些流量应该流向哪个端点将非常棘手。

    执行此操作的通常方法是在图表中包含 Route53 的位置使用负载均衡器或代理。 Amazon ELB 将能够执行您需要的重定向。一个更便宜的选择(尽管它会涉及更多管理)是使用 Apache httpd 或 Nginx 之类的东西将请求转发到 Payara 服务器。

    【讨论】:

      【解决方案2】:

      您只需为每个子域创建一个虚拟服务器并在“主机”字段中设置子域。然后您需要部署所有 4 个应用程序并在“虚拟服务器”字段中选择正确的虚拟服务器。 @Mike 链接的博客将为您提供指导:https://blog.payara.fish/virtual-servers-in-payara-server

      所有虚拟服务器都将监听同一个 IP 地址,但 Payara 服务器将从传入的 HTTP 请求中读取域并将请求路由到正确的虚拟服务器。

      但是,这仅建议用于非常小的应用程序。更大的应用程序应分别部署在不同端口或不同机器上运行的不同 Payara Server 实例上。如果您使用 docker,那么您可以在 docker 中运行 4 个实例并将它们映射到不同的端口。然后,您需要一个代理服务器(Apache Httpd、Nginx、)根据请求中的域名将请求路由到正确的 Payara 实例(端口)。

      【讨论】:

        猜你喜欢
        • 2017-08-31
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 1970-01-01
        • 2018-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多