使用云服务器的网络来提供本地服务器的内容

使用云服务器的网络来提供本地服务器的内容

我正在尝试为当地社区构建一个 Web 应用程序。我想托管一个 Postgres 数据库、一个 SSR 前端服务器和一个 REST 后端服务器。这里的互联网和电力相当便宜,我有一台闲置的 PC。我有几个硬盘,我可以对它们进行突袭以实现冗余。类似规格的 AWS 机器售价为 170 美元,我认为我可以做得更便宜。在可预见的未来,我不希望应用程序扩展到任何级别(最多 50 个并发用户,同一地区)。唯一的问题是我没有静态 IP。IPv6 路由在我所在地区并不流行。我可以选择更简单的 BaaS,但我也想学习。

我在 linode 上有一个服务器(单个共享核心,1 GB RAM),带有静态 IPv4。我如何在本地机器(可能是多台 KVM 机器)上托管所有内容并将所有内容提供给人们?

我用过脚本来设置 wireguard 服务器。我可以使用类似 `nginx 的东西吗?还有其他选择吗?我的整个设置会是什么样子?如果我要为前端、后端和数据库使用单独的虚拟机,我应该如何将它们联网?

我知道有很多方法可以解决这个问题,我正在尝试感受“如果我能做到”。如果我能托管自己的服务器,我会很高兴。

答案1

忽略您拥有的服务器。没用。使用 Cloudflare Tunnel 就大功告成了。一个小型 docker 级代理启动与 cloudflare 的所有必要连接并充当路由器。

另一个更通用的设置是使用 linode 服务器作为路由器,然后从您的服务器到它建立一个 vpn - 我经营一家住宅互联网公司很久了(不是网站,而是人们拨入),因为当时没有真正的办法得到其他任何东西...在某些地区和国家有愚蠢的限制。

答案2

wireguard使用和是可能的nginx。目前,linode 服务器的 IP 地址为 123.123.123.123,linode 服务器的 wireguard IP 地址为 10.66.66.1。如果我的本地服务器连接到同一个 wiregaurd 网络,它的 IP 为 10.66.66.10。基于回答,我创建了一个nginx配置

stream {
        upstream ssh1 {
                server 10.66.66.10:22;
        }
        server {
                listen 4575;
                proxy_pass ssh1;
        }
}

现在,如果我使用 进行 ssh 连接,ssh 连接将由 代理到我的本地服务器。我想我可以用 这种方式公开我想要的任何服务。ssh [email protected] -p 4575nginxnginx

理想情况下,我希望为我的本地服务器设置一个单独的域,例如 (server1.example.com),并且所有连接都直接转到本地计算机。如果可以的话请告诉我。

答案3

连接到云服务器:使用 SSH 等远程访问工具连接到云服务器并配置它以从本地服务器检索内容。您可以使用 rsync 等工具将内容从本地服务器传输到云服务器。

提供内容:将内容传输到云服务器后,将其配置为向客户端提供内容。这可以使用 Apache 或 Nginx 等 Web 服务器或任何其他可以提供内容的服务器软件来完成。

服务器网络提供本地服务器内容,让世界各地的客户都能访问。但是,确保采取适当的安全措施来保护内容并防止未经授权的访问非常重要。

相关内容