CloudFlare 是否可以从 8080 获取内容并在 80 上提供服务?

CloudFlare 是否可以从 8080 获取内容并在 80 上提供服务?

CloudFlare 是否可以通过端口 8080 获取我的服务器提供的内容并通过端口 80 将其提供给用户?

例如,我有以下 IP 地址0.0.0.0和域名example.ga(已在 CloudFlare 注册)。CloudFlare 可以从 检索内容0.0.0.0:8080并将其显示在 上example.ga:80吗?

答案1

据我所知,不是。免费计划中的 CloudFlare 无法进行端口转换。如果您在端口 80 上发出请求,CloudFlare 会将其发送到端口 80 上的源。CloudFlare 基本上是不可见的。在企业计划中,CloudFlare 可能可以为您做到这一点。

如果你的服务器在端口 8080 上,你应该安装一个反向代理。这可以与应用程序服务器位于同一台服务器上,也可以位于不同的服务器上。在不同的服务器上,使用适当的防火墙规则,您可以创建非军事区,从而增加了安全性。

Nginx 常用作反向代理,可与应用服务器在同一台服务器上,也可在不同服务器上。Nginx 可轻松接受端口 80 上的请求,然后将其传递到在端口 80 上运行的应用服务器。它非常轻量,仅需极少的 CPU 或 RAM。

Nginx 还可以根据您定义的规则缓存页面,以加速提供静态资源或匿名页面。从缓存中提供页面比再次生成页面的工作量要少得多。Nginx 反向代理指南在这里。我还有一个Nginx/Wordpress 指南这将为您提供更多有关如何为匿名用户(但不为登录用户)缓存页面的示例。

根据评论更新

显然,在 Linux 上,您可以使用 iptables 来重定向端口。例如,在端口 8080 上运行的服务器可以在端口 80 上响应。这必须由具有 root 权限的用户进行设置,因为非特权用户无法监听 1024 以下的端口。

答案2

您正在寻找的是“反向代理”。这是一个充当另一台服务器上内容访问点的 Web 服务器。较新版本的 Windows Server 将其标记为“应用程序代理”。它们可以配置为从另一台服务器请求内容,甚至可以将 HTTPS 发送到从内部 HTTP 服务器拉取的代理。理想情况下,一切都应该是 HTTPS。希望这能回答您的问题并为您提供一些值得寻找的东西。

答案3

如果您想要隐藏您的真实 IP 地址,那么一个选项是获取具有公共 IP 的 AWS 之类的托管服务“并让 CloudFlare 指向该 IP”,然后在该服务器上运行 Nginx 或 HAProxy 之类的程序。您可以将这些程序配置为作为后端连接到您的真实服务器,然后将路由器/调制解调器/服务器/等防火墙配置为仅接受来自您的 AWS 的 IP 地址和任何其他 IP(如远程托管的 IP)的连接。您还可以将 AWS 配置为仅接受来自CloudFlare IP。它将类似于:用户 -> 您的域(CloudFlare -> AWS -> 您的真实/后端托管),然后流回用户,因此响应时间可能会稍微延迟。或者您可以跳过 AWS,只使用防火墙接受来自 CloudFlare IP 的连接,除非您正在运行其他服务(FTP、电子邮件等),否则它不会隐藏您的真实 IP。

相关内容