NGINX не перенаправляет на auth_request 302 - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть NGINX обратный прокси-сервер, который также обслуживает содержимое c в / со следующей конфигурацией

    location / {
        auth_request /authn;
        proxy_intercept_errors on;
        recursive_error_pages on;
        error_page 301 302 303 307 308 = @handle_redirect;
        gzip_static on;
        index   index.html;
        root /usr/share/nginx/html;
        try_files $uri $uri/ @index;
    }

    location /authn {

        set $target http://gateway:8030/authn;
        proxy_pass http://gateway:8030/authn;
        proxy_pass_request_body off;
        proxy_set_header Content-Length "";
        proxy_set_header X-Original-URI $request_uri;
        proxy_pass_request_headers on;
        proxy_intercept_errors on;
        recursive_error_pages on;
        error_page 301 302 303 307 308 @handle_redirect;
    }

    location @handle_redirect {
            proxy_set_header Host $host:$server_port;
            set $redirect_url $upstream_http_location;
            proxy_pass $redirect_url;
        }

Цель состоит в том, чтобы проверить пользователя, прошедшего проверку подлинности посредством подзапроса к конечной точке / authn, которая будет вернуть 302 и заголовок Location, если пользователь не. Но клиент получает 500 из NGINX с журналом ошибок, например

auth request unexpected status: 500 while sending to client

. У меня также есть конечная точка / root, которая poxy-напрямую переходит на шлюз / authn, который правильно перенаправляет на страницу входа и аутентифицирует клиента. Я попытался вместо обработки перенаправлений в подзапросах запросы прокси-прохода к этой конечной точке с установкой

    location /root {
            set $target http://top-gateway:8030/authn;
            proxy_pass http://top-gateway:8030/authn;
        }

    location /authn {
        ...
        error_page 301 302 303 307 308 /root;

Но в этом случае я получаю 500 и

auth request unexpected status: 302 while sending to client

в NGINX ошибка .log

Почему NGINX неправильно обрабатывает перенаправления с этими настройками и как правильно решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...