【问题标题】:Why I can access my website at (ip address):port but not (domain name):port?为什么我可以在(IP 地址):端口访问我的网站,但不能(域名):端口?
【发布时间】: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


【解决方案1】:

你不能,因为如果你通过点击 cloud-image 通过 cloudflare 传递你的域,你的端口将只能像这样使用:

对于通过 HTTP 发出的请求(CloudFlare 上的所有域):

80 8080 8880 2052 2082 2086 2095

对于通过 HTTPS 发出的请求(仅限订阅 Pro、Business 或 Enterprise 的域):

443 2053 2083 2087 2096 8443

我的解决方案是为任何实例(如 ssh、python 等)创建一个不通过 cloudflare 的子域。

https://support.cloudflare.com/hc/en-us/articles/200169156-Which-ports-will-CloudFlare-work-with-

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 2013-05-11
    • 2018-11-07
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多