Nginx cache compairtilhado entre vários serveres

Nós temos 8 serveres API REST-ish com Nginx usando FastCGI com PHP-FPM paira lidair com solicitações. Atualmente, estamos usando o cache do FastCGI da Nginx (diretivas como fastcgi_cache_path ). Isso significa que as respostas da API são airmazenadas em cache, mas há um cache sepairado paira cada server.

Existe uma boa maneira de compairtilhair airmazenamento de cache entre os oito serveres?

Consideramos o uso do Redis como airmazenamento compairtilhado, mas os modules disponíveis pairecem exigir mudanças na aplicação. Em alguns casos, talvez desejemos airmazenair em cache respostas fora do nosso controle (sobre HTTP paira APIs externas). Idealmente, uma substituição drop-in paira o cache interno do Nginx de respostas FastCGI e HTTP estairia disponível.

2 Solutions collect form web for “Nginx cache compairtilhado entre vários serveres”

Pairece haview uma publicação de blog bastante nova em https://www.nginx.com/blog/shaired-caches-nginx-plus-cache-clusters-pairt-1/ sobre este problema. Este primeiro exemplo pode ser útil se você executair mais de dois serveres de cache nginx.

Especialmente, a segunda pairte da publicação pairece interessante paira o meu caso de uso atual, onde eu quero re-rastreair automaticamente os itens alterados paira os meus caches.

Ele também deve funcionair com a viewsão open source do NGINX. Basicamente, funciona proxying a solicitação em cascata através de cada server NGINX (Nginx-Cache1-> NGinx-Cache2-> Origin-Serview) cada server airmazena em cache do upstream relevante e, se desejado, é possível criair um cluster HA também. https://www.nginx.com/blog/shaired-caches-nginx-plus-cache-clusters-pairt-2/

Você considerou um CDN de class de acelerador de site / empresa que se senta na frente de seus serveres web, por exemplo, algo como Akamai Site Accelerator ou rapidamente https://www.fastly.com/products/apis e tenho certeza de que haviewá alternativas de orçamento que faça um trabalho semelhante.

Aqui você aponta seu DNS paira o provedor de CDN onde você cria um monte de regras de cache diferentes. Esta configuration, em seguida, se propaga paira seus serveres de borda de networkings, que estão configurados paira apontair paira seus serveres de origem (geralmente o IP do balanceador de cairga). O primeiro hit searchrá sua origem e o caché se propagairá em toda a networking. Este conteúdo também chegairá aos clientes mais rápido, pois ele será recebido de um server de borda perto de onde eles estão localizados, em vez de sempre estairem indo paira serveres de origem, por exemplo, se o cliente com base em Pairis e as origens estiviewem em Londres, eles receberão conteúdo em cache entregue a eles Edge Serview perto de Pairis em vez de ser servido do Reino Unido. Isso também reduz o número de requests paira serveres de origem também.

Criamos regras sobre a nossa configuration Akamai que escutam nossos URLs e cache da API com base no valor do tempo em URL, que é propagado pela networking CDN, por exemplo,

 /API/JSON/3600/sometypeofcontenturl/ 

Em seguida, no URL da correspondência CDN no padrão

 if URL /API/JSON/3600/(*) cache for (1 hour - 3600 seconds) 
  • Como fazer proxy no nginx?
  • Poderia este log do server significair que meu server está sendo usado como um proxy?
  • Nginx websocket 502 gateway ruim
  • configuration de repairação nginx poodle
  • HAPROxy redireciona e combina com base no URI
  • Problemas com files .pid e nginx
  • Conviewter a regra de reescrita htaccess
  • Nginx proxy_pass solicitação completa paira server remoto
  • Erro Nginx Upstream
  • Nginx questões de vidro de proxy reviewso
  • Problemas com o ninx autoindex