Colocando em cache nginx auth_request

1

Estou tentando configurar um proxy reverso nginx 1.12.2 para usar auth_request e proxy_cache para autenticar solicitações para um microsserviço. Os usuários finais enviam um token Bearer simples com sua solicitação, e o servidor tenta buscar um recurso com ele para determinar se eles podem continuar. Essa busca de recursos deve ser armazenada em cache para que um determinado token tire carga do endpoint de autenticação. Aqui está minha configuração até agora:

ssl_certificate                 /etc/nginx/ssl/certificate;
ssl_certificate_key             /etc/nginx/ssl/key;
proxy_cache_path                /var/cache/nginx/auth_cache levels=1:2 keys_zone=auth_cache:1m max_size=1g inactive=60m;
server {
    listen                      80;
    listen                      443 ssl;
    server_name                 myapi.mydomain.com;
    location / {
        proxy_pass              http://myapi/;
        auth_request            /auth;
    }
    location = /auth {
        internal;
        proxy_pass              https://authendpoint.mydomain.com/api/user/verify;
        proxy_cache             auth_cache;
        proxy_cache_key         "$http_x_auth_token$request_uri";            
        proxy_pass_request_body off;
        proxy_set_header        Content-Length "";
        proxy_set_header        X-Original-URI $request_uri;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Do ponto de vista do cliente, isso funciona muito bem, mas quando olho para o servidor nginx, nada é gravado na pasta cache. A pasta /var/cache/nginx/auth_cache é criada, mas está sempre vazia. O que eu poderia estar perdendo?

    
por superstator 17.02.2018 / 01:03

0 respostas

Tags