Nginx 添加request_auth认证模块

  1. 在需要鉴权控制的Nginx配置中,配置auth_request来指定用于鉴权的请求路径。用户访问/api会先访问鉴权路径
  2. 根据鉴权的请求返回的状态码,决定是否通过
    location /api/{
        auth_request /auth;
        # 鉴权通过后请求转发到该地址
        proxy_pass http://192.168.60.128:8080/success
    }

    location /auth {
        # 声明该location块仅限内部调用,不用于反向代理
        internal;
        # 表示确定是否向上游服务器发送HTTP包体部分。
        proxy_pass_request_body off;
        # 设置请求头
        proxy_set_header Content-type "";
        # 进行验证,返回状态码
        proxy_pass http://192.168.60.128:8080/verify
    }

引用:https://cloud.tencent.com/developer/article/1079065
nginx-auth-request-module模块基本使用原理就是:

  1. auth_request对应的路由返回401 or 403时,会拦截请求直接nginx返回前台401 or 403信息;
  2. auth_request对应的路由返回2xx状态码时,不会拦截请求,而是构建一个subrequest请求再去请求真实受保护资源的接口;
posted @ 2023-11-15 16:54  凉白茶  阅读(1578)  评论(0编辑  收藏  举报