拦截请求,然后转发到另一个服务器

Intercept request and then forward to another Server

问题

我在这里遇到了一个独特的问题。我有一个带管理面板的 nginx 服务器 (admin.example.com)。现在我只想允许特定的 IP 地址访问该服务器,我知道我们可以通过 nginx 允许和拒绝标记来做到这一点。但这种方法对于非技术用户来说相当困难,并且需要访问服务器本身以进行更改,然后重新加载 nginx。目的是让任何人都可以轻松地将 IP 地址列入白名单。

解决方案

我们想出了一个 UI app.example.com(托管在不同的服务器上)来管理 IP 地址。现在我想通过这个新服务器路由所有 (admin.example.com) 请求,它将检查 IP 是否被允许然后将请求代理到 admin.example.com 否则拒绝访问。

问题

我的问题是我们如何通过 app.example.com 路由所有请求,并且一旦验证了 IP,然后才将请求转发到 admin.example.com 的来源?

如果可以通过nginx反向代理,是否需要通过PHP或python等本地上游处理请求,验证后再转发?

任何具有 nginx 配置伪代码的示例都将受到高度赞赏。

我知道像 Cloudflare 这样的服务可以做到,但我只需要一个基本设置。

这就是我想要的 。另一种方法是使用 Openresty lua JIT 对请求进行预处理,然后将其转发给反向代理。

https://openresty.org/en/