Я пытаюсь использовать модуль auth_request , чтобы проверить, разрешен ли пользователю доступ к определенному файлу. Пользователь отправляет запрос на /my/download/uri/<File ID>
. Я хочу, чтобы запрос на авторизацию был размещен на auth_service:9999/files/<File ID>
. Соответствующая часть моей конфигурации выглядит следующим образом:
location /my/download/uri {
auth_request /auth/files/$uri;
alias /my/file/directory;
}
location /auth {
internal;
proxy_pass http://auth_service:9999/;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
Запрос получен службой авторизации, но на буквально /files/$uri
; переменная не размещена. Сначала я попытался подготовить URI через переменную set
, но безрезультатно. Как я могу получить nginx для правильного направления запроса авторизации?
(Примечание: я знаю, что могу включить исходный запрос в заголовок запроса авторизации через X-Original-URI
. Однако это будет означать, что я Я должен выполнить дополнительную обработку полного URI на сервере авторизации, чтобы получить соответствующие данные, что я бы предпочел не делать, если есть способ отправить запрос авторизации на правильный URI.)