Как отправить auth_request в переменную URI в nginx? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь использовать модуль 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.)

...