0
点赞
收藏
分享

微信扫一扫

nginx配置统一鉴权

需要用到ngx_http_auth_request_module 模块,它可以基于子请求的结果实现客户端授权。
高版本(1.12+)已经默认安装该模块,或者使用--with-http_auth_request_module开启此模块。

location /auth {
    internal; # 只允许内部调用,外部调用报404
    proxy_pass http://localhost:8081;
    proxy_pass_request_body off; # 不向上游发送包体
    proxy_set_header Content-Length ""; # 同上,看情况加或不加
    proxy_set_header X-Original-URI $request_uri; # 传递真实请求路径
    proxy_set_header X-Original-Remote-Addr $remote_addr; # 传递真实访问者地址
    proxy_set_header X-Original-Host $host; # 传递真实请求地址
}

location /secret {
    auth_request /auth;
    auth_request_set $user $upstream_http_x_forwarded_user;
    proxy_set_header X-User $user; # 可以传递Header
    add_header Set-Cookie $user; # 可以传递Cookie
    proxy_pass http://localhost:8080;
}

[参考]
使用Nginx实现网关统一鉴权

留待后查,同时方便他人

举报

相关推荐

0 条评论