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?
Tags nginx