nginx auth_request重定向

时间:2017-04-09 09:46:52

标签: nginx auth-request

我使用auth_request模块(https://play.golang.org/p/k_UlghLxZI)。我的nginx配置:

auth_request /auth;
auth_request_set $backend_status $upstream_status;

location / {
    proxy_pass http://unicorn;

    error_page 401 @auth;
}

location = /auth {
    internal;
    proxy_pass https://proxy_pass_url;
    proxy_pass_request_body off;
    proxy_set_header Content-Length "";
}

location @auth {
    if ($backend_status = "401") {
      return 302 https://proxy_pass_url/login? origin=$scheme://$http_host$request_uri;
    }
}

但我的重定向不起作用。我的配置有什么问题?

1 个答案:

答案 0 :(得分:0)

这是什么意思?我假设您没有重定向,但是请求的状态码是什么? / auth子请求的状态码是什么?您在哪个Nginx上进行测试?您检查错误/访问日志了吗?

我问是因为我拿了你的代码,在Nginx 1.19.1上运行,并且运行良好。当/ auth子请求返回401错误时,我正在通过@auth位置进行重定向。我们可以在这里改进的一件事。您无需检查$ backend_status变量是否等于401,如果Nginx将请求传递到@auth位置,则意味着我们从/ auth获得了401:)

Br, 皮奥特