NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
chenqy930
V2EX  ›  NGINX

ngnix 做代理的问题

  •  
  •   chenqy930 · May 6, 2018 · 3264 views
    This topic created in 2928 days ago, the information mentioned may be changed or developed.

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

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

    恳请大家指教~~

    siteshen
        1
    siteshen  
       May 7, 2018
    没在 nginx 中实现过这么复杂的逻辑,用 lua 应该能做到。可以考虑直接在 A 服务器代码中请求 B 服务器是否有权限。
    chenqy930
        2
    chenqy930  
    OP
       May 7, 2018
    因为服务器 A 的代码不便修改,所以还是想尽量用代理实现,我去看看 lua,感谢~
    Judoon
        3
    Judoon  
       May 7, 2018
    难道不是所有请求都打到 B,
    然后 B 判断是否有权限,没权限直接返回给 nginx 403,有权限再向 A 请求了结果后返回给 Nginx 吗?


    这样所有的逻辑处理都在 B,A 的代码也不用改,nginx 也只做了反代的功能,结构不是更清晰吗?
    chenqy930
        4
    chenqy930  
    OP
       May 7, 2018
    有道理啊,可是 B 也不便修改呢- -
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4262 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
    ♥ Do have faith in what you're doing.