ngnix 做代理的问题

2018-05-06 21:43:40 +08:00
 chenqy930

目前想实现这样一个功能:用户发出请求在获取服务器 A 的内容前,先查询服务器 B 是否有权限,如果有,则将请求转发给 A,返回内容。如果没有,返回给用户权限不足的信息。

最近刚入门 nginx,我的一个实现思路是用户原始请求到达后 subsequent 模块产生一个新请求到服务器 B,根据 B 的返回结果来确定是否用 proxy_pass 原请求到服务器 A。我看《深入理解 nginx 》这本书讲解 B 返回之后的回调函数一般是构造响应包发送给用户,不知在这一步再产生一个 subsequent 的做法是否可行呢?

恳请大家指教~~

2777 次点击
所在节点    NGINX
4 条回复
siteshen
2018-05-07 08:59:55 +08:00
没在 nginx 中实现过这么复杂的逻辑,用 lua 应该能做到。可以考虑直接在 A 服务器代码中请求 B 服务器是否有权限。
chenqy930
2018-05-07 10:36:02 +08:00
因为服务器 A 的代码不便修改,所以还是想尽量用代理实现,我去看看 lua,感谢~
Judoon
2018-05-07 11:29:33 +08:00
难道不是所有请求都打到 B,
然后 B 判断是否有权限,没权限直接返回给 nginx 403,有权限再向 A 请求了结果后返回给 Nginx 吗?


这样所有的逻辑处理都在 B,A 的代码也不用改,nginx 也只做了反代的功能,结构不是更清晰吗?
chenqy930
2018-05-07 18:36:39 +08:00
有道理啊,可是 B 也不便修改呢- -

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/452612

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX