我可以使用鱿鱼(或任何东西)来做到这一点吗?

我可以使用鱿鱼(或任何东西)来做到这一点吗?

我的办公室里有一个非常糟糕的 VPS 和一台非常好的计算机(具有非常好的互联网连接),但是位于 NAT 后面。

通过这样做是否可能暴露我的好电脑:

  1. 好的计算机连接到 VPS(并保持连接)
  2. 用户连接到VPS,并向VPS发送http(s)请求。
  3. VPS 只是将 http(s) 请求传递给好计算机(包括一些标识,以便服务器可以区分连接)
  4. 好电脑将 http(s) 响应传递给 VPS
  5. 反过来,VPS 接收 http(s) 响应,并将其传回给客户端。

可以这样做吗?(顺便说一句,VPS 和好电脑位于不同的国家)

还有,这是“反向代理”吗?我听说反向代理是通过放置中间服务器来保护内部网络的。

这会影响 SSL 配置吗?(或者使 SSL 变得不可能?)我打算在好的计算机上运行 nginx。

答案1

是的 - 它只是一个 VPN,但尝试通过 HTTP 实现 VPN 隧道有点愚蠢:

 [client]
    ^
    |
    | HTTP[S]
    v
 [VPS running proxy]
    ^
    | VPN
    |
    V
 [Good computer]

如果 VPS 和好计算机之间存在 NAT,那么使用隧道 VPN 协议是可行的方法。

据我所知,squid 和 varnish 都不支持 SSL - 虽然您可以添加 stunnel 来终止 SSL,但使用 nginx 作为代理更有意义。

做吧非常确保 VPS仅有的代理与指定主机的连接。

答案2

就我个人而言,我只会为 http 和 https 工作负载使用 squid 反向代理,因为它可以节省通过办公室连接进行的数据传输。SSH 流量很小,因此只要您使用共享密钥身份验证而不是密码身份验证,直接进行连接就可以了。

另一种策略(如果保护内部网络很重要)是使用本地网络内的 DMZ。好电脑将位于 DMZ 中并直接为客户服务。

当然,这些都不是最佳实践。反向代理通常用于负载平衡和释放主 Web 服务器的 CPU 或带宽,而不是用于隐藏服务器。您必须记住,您的计划将增加每个请求的延迟,尤其是在本地计算机和 VPS 之间使用 VPN 的情况下。

相关内容