1

У меня есть простой прокси, который требует auth_request auth_request для аутентификации. Аутентифицированные пользователи затем передаются по ссылке s3 для загрузки файла.

Тем не менее, я вижу, что подзапрос auth срабатывает более одного раза за посещение прокси-адреса.

Я не уверен, почему это так, одна из моих теорий состоит в том, что загрузка s3 велика и требует загрузки нескольких пакетов, каждый пакет требует отдельного подзапроса аутентификации? Но это звучит неправильно, я предполагал, что один запрос на аутентификацию применяется в течение всего сеанса.

Я знаю, что подзапрос auth запускается более одного раза, потому что в коде подзапроса я добавил функции ведения журнала, которые показывают повторяющиеся записи для одного запроса.

У кого-нибудь есть больше информации по этому поводу?

Ниже мой конфиг nginx (это происходит с директивой auth_request_set и без нее )

location ~* ^/(assets/.*) {
    auth_request /auth-proxy; 

    resolver 8.8.8.8;

    proxy_pass_request_headers off;
    proxy_pass_request_body off;
    proxy_redirect off;

    auth_request_set $token $upstream_http_token;

    client_max_body_size 5120M;

    proxy_pass https://bucket-name.s3.amazonaws.com/$1?$token;
}

1 ответ1

1

Проблема заключалась не в том, что несколько подзапросов вызывали проблемы на один запрос, а в том, что прокси-сервер S3 отвечал 206 частичными ответами на контент, заставляя клиента выдавать последующие запросы, чтобы получить остальную часть содержимого (что необходимо правильно повторно подтвердить подлинностью) через новый подзапрос).

Это не было идентифицировано раньше, потому что Firebug собирал частичную цепочку контента 206 в единичные 200 в сетевых журналах, поэтому я не сразу осознал, что это происходит за кулисами, пока не заметил, что S3 не будет выдавать 206 ответов, когда пользователь Агент это Wget!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .