具有相同实例和不同地址的Setup Server

时间:2015-06-17 15:37:30

标签: amazon-web-services dns server port google-compute-engine

我想单独开发我的应用程序(API,JOBS,WEB),以便它保持这种方式:

  • API:api.myaddress.com
  • JOBS:jobs.myaddress.com
  • WEB:myaddress.com

我知道如何使用亚马逊和GoogleComputing的不同实例做到这一点,但是,我想知道如果我可以设置一个实例来完成所有这些,并且每个DNS命名空间都会转到该机器上的不同端口,例如:

  • api.myaddress.com位于xxx.xxx.xxx.xxx:8090
  • jobs.myaddress.com位于xxx.xxx.xxx.xxx:8080
  • myaddress.com位于xxx.xxx.xxx.xxx:80

如果可以的话,我也不知道应该在哪里配置它(是在DNS中,还是我在亚马逊/谷歌的实例上的特定设置?)

3 个答案:

答案 0 :(得分:0)

为什么要让他们去另一个港口?它当然没有必要。您可以使用DNS将所有这些域/子域指向单个服务器/ IP地址,然后通过您的Web服务器配置将各个子域名绑定到该服务器上的每个特定网站。

在IIS中,您可以在IIS管理器工具中绑定,并且apache具有类似的功能:

http://httpd.apache.org/docs/2.2/vhosts/examples.html

答案 1 :(得分:0)

听起来您正在寻找的是HTTP 反向代理。这将是您的计算机上绑定到端口80的Web服务器,并根据传入的Host:标头(或其他条件)将请求转发到相应的Node.js实例,每个实例都绑定到一个(不同的)自己的端口。

有几种选择。一下就会想到的是HAProxy和Nginx。

DNS不能用于控制请求到达的端口。

另一种方法(可以说是)非传统但可行的方法是设置3个CloudFront分配,每个主机名一个。每个分发都会将请求转发给原始服务器" (您的服务器)和目标端口可以为每个端口指定。由于CloudFront主要用作缓存服务,因此您需要从Node返回Cache-Control:标头以在适当的时候禁用该缓存...但您还可以看到CloudFront可以允许缓存的响应的一些性能改进你。

答案 2 :(得分:0)

您正在寻找的是负载均衡器(如果是亚马逊,则为ELB)。

设置负载均衡器以将流量发送到不同的端口,并在DNS级别为您的服务设置CNAMES,指向您拥有的3个负载均衡器。