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

时间:2017-12-15 06:02:59

标签: php python nginx reverse-proxy cloudflare

问题

我在这里遇到一个独特的问题。我有一个带管理面板的nginx服务器(admin.example.com)。现在我想只允许特定的IP地址访问该服务器,我知道我们可以通过nginx allow和deny标签来实现。但是对于非技术用户来说这种方法非常困难,并且需要访问服务器本身才能进行更改,然后重新加载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这样的服务可以做到,但我只需要一个基本设置。

1 个答案:

答案 0 :(得分:0)

这就是我想要的How do I make web service calls within nginx?。另一种方法是使用Openresty lua JIT预处理请求,然后将其转发给反向代理。

https://openresty.org/en/