Nginx Try_Files para criar o cache de conteúdo local?

1

Estou tentando veicular imagens localmente ou de um compartilhamento (atualizadas localmente de um dia para o outro).

Meu site nginx é exibido em dois ou mais servidores, para manter todo o conteúdo em sincronia em cada servidor, estou armazenando-o em um compartilhamento de arquivos do Azure e essa é a raiz do local (/mnt/wp).

Isso funciona muito bem (junto com o Nginx Caching), mas as imagens têm um tempo de espera muito lento, o que suponho ser um problema de latência client-server-azure. Então, para tornar as coisas mais rápidas, eu gostaria de servir as imagens localmente (/ var / www /), se disponível, e depois voltar ao azure (/ mnt / wp)

Até agora eu tenho esse bloco de localização, mas os logs estão mostrando um loop de redirecionamento ..

Estou sentindo falta de algo?

   location /wp-content/ {
            add_header X-uploads $uri;
            try_files @contentCache/$uri $uri;
    }

    location @contentCache{
            root /var/www;
    }
    
por Stuart.Sklinar 25.03.2016 / 17:49

1 resposta

1

Sua sintaxe para try_files está errada. Um local nomeado deve ser a ação padrão colocada no último elemento. Algo parecido com isto:

location /wp-content/ {
    ...
    try_files $uri @contentCache;
}
location @contentCache {
    ...
    try_files $uri =404;
}

Veja este documento para saber mais.

Se você precisar reverter o pedido, basta trocar suas diretivas root .

    
por 25.03.2016 / 18:22