问题: 我有一个运行 FreeBSD 的 AWS EC2 实例。在那里,我正在运行一个 NodeJS TLS/TCP 服务器。我想创建一组规则(在我的 NodeJS 应用程序中),以便能够根据一些逻辑条件以编程方式单独阻止 IP 地址。
我想运行一个外部(不在同一台机器/实例上)防火墙或负载平衡器,我可以通过 NodeJS 以编程方式控制它,这样当给定某些条件时,我可以阻止特定的远程地址(IP)在它到达 NodeJS 实例之前。
我尝试过的事情: 我最初将nginx作为一种选择,在第二个实例上运行它,并将我的 NodeJS 服务器放在它后面,但是在浏览了NGINX Cookbook Advanced Recipes for High Performance Load Balancing之后,我了解到只有 NGINX Plus(付费版)允许远程/API 控制和定制。虽然我认为支付 3500 美元/许可证并不算多(考虑到 NGINX Plus 的所有功能),但我现在根本买不起;此外,我将使用的唯一功能(此时)将是远程 API 控制和IP 地址阻止。
我的第二个想法是通过将 AWS 的 SDK 集成到我的项目中来使用 AWS/ELB(弹性负载均衡器)。不幸的是,这听起来是可行的,在阅读了一些论坛主题和他们的部分文档之后(除非我弄错了),我需要的这两个功能似乎在 AWS/ELB 上不可用。AWS 似乎提供了一种完全不同的服务,称为 WAF,老实说,我不太了解它(无论是作为服务还是从功能的角度来看)。
我也(简要地)研究了 CloudFlare,正如在 Sackoverflow 上的一篇文章中所推荐的那样,尽管我无法确定他们的防火墙是否允许这种级别的(远程)控制。
问题: 我有哪些选择?你们会建议我做什么?