【发布时间】:2014-01-02 04:25:48
【问题描述】:
我有一个使用弹性 IP 12.34.56.78 运行的 Amazon EC2 实例。我拥有一个域名 example.com,我已将其设置为指向 EC2 实例。我在 EC2 实例的 80 端口上运行 Apache Web 服务器,当我访问 http://12.34.56.78 和 http://example.com 时,我可以看到该网站。
我还在端口 3000 上运行 node.js 服务器。访问 http://12.34.56.78:3000 时可以看到 nodejs 页面,但访问 http://example.com:3000 时看不到.我的 EC2 实例的安全组允许端口 80、443 和 3000 上的 TCP/UDP。为什么我通过域名访问我的站点时看不到我的 node.js 页面? (我想运行一台 Apache 服务器和一台 node.js 服务器)
我认为我遇到了这个问题,因为我正在使用 cloudflare 将 http://example.com 与 12.34.56.78 链接。但即使我尝试连接 http://direct.example.com:3000,我也看不到我的 node.js 服务器。 (直接子域应该直接到 12.34.56.78,cloudflare 没有做任何工作)
有什么想法吗?
【问题讨论】:
-
域的
nslookup/dig(仅基于Linux)的输出是什么? -
我取回了 cloudflare 域名服务器的 IP 地址。 108.162.199.15 和 108.162.198.15。当我在 direct.example.com 上运行 dig 时,我得到了相同的 IP
-
我调查了一下,cloudflare 只在某些端口上路由流量,所以我尝试在其他端口之一上运行 node.js 服务器。有用!谢谢。
-
这里只需 2 便士:如果这符合您的域管理需求,请查看 Route53。在亚马逊服务列表中。它将允许您以经典方式指向域:A 记录,它会立即工作。顺便说一句,您也可以通过 Apache 代理您的节点,因此转到:node.example.com Apache 可以代理到 127.0.0.1:3000,这样您也不需要在 url 中提供 IP。同样,如果您的情况允许,请查看 nginx,因为它在配置和代理方面更友好,并且与节点配合得更好。
标签: node.js apache amazon-ec2 port cloudflare