更新 NGINX 反向代理后面的服务器虚拟机

更新 NGINX 反向代理后面的服务器虚拟机

我一直在互联网上寻找解决方案或最佳实践,但无济于事。我一直在尝试使用 Virtual Box Ubuntu 服务器实例,并试图复制一个服务器环境,用于托管我一直在思考的 Web 应用程序。我真的很想尝试使用 NGINX 作为负载平衡器和静态文件服务器,在一堆 nodejs 进程前面。

基本上,我在开发电脑上设置了一系列 Ubuntu 服务器虚拟机。我有一台面向互联网的虚拟机,其中安装了 NGINX,还有三台设置为内部网络的附加上游服务器。

我的 NGINX 机器与三台上游机器位于同一个内部网络中,并且位于单独的桥接网络适配器上。所有四台机器都可以互相 ping 通,只有 NGINX 反向代理可以访问互联网。

我的问题是,在不影响使用反向代理的安全优势的情况下,更新服务器的最佳方法(甚至是好方法)是什么?我的理解是,使用反向代理的好处之一是,它只为攻击者创建一个访问您的服务器的访问点,尽管存在 XSS/SQL 注入漏洞。

我是否应该让我的上游服务器临时访问互联网来更新应用程序,或者最好同时将反向代理机器设置为正向代理?

感谢您的帮助!

答案1

一台服务器可以访问互联网并不意味着互联网也可以访问该服务器。

您可以(也应该)在每台机器上配置防火墙。您还可以配置独立的防火墙来保护所有机器。

一种常见的防火墙配置模式是允许所有出站流量,然后拒绝所有入站流量,但已建立的连接除外(即防火墙内的机器启动的连接)。此模式将允许您的机器通过互联网请求更新,但不允许互联网上的任何人连接到您的 NodeJS 服务。

在反向代理框中,您必须添加另一条规则以允许端口 80 和 443 上的入站流量。


还有其他方法可以解决这个问题,比如在 DMZ 盒上运行代理服务器,并apt在所有其他盒上配置使用该代理。这在以下情况下有效:不能使内部盒子直接访问互联网,例如 PCI 卡数据环境。

相关内容