A regra regex do Nginx para imagens em cache sobrescreve o bloco de localização raiz

3

Minha configuração nginx contém as seguintes regras de localização:

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
        expires 7d;
    }

    location /data/ {
            root /mnt/data;
    }

O problema é que quando eu tento acessar um dos seguintes arquivos (jpg | jpeg | png | gif | ico | css | js | pdf) na pasta / data / recebo erro 404 Not Found, causa o primeiro regra de localização substitui a segunda. Eu tentei fazer algo assim:

    location ~* /data/.*\.jpg$ {
            root /mnt/data;
            expires 7d;
    }

Mas isso não parece funcionar. Você poderia por favor me ajudar quais soluções estão disponíveis para mim neste caso?

    
por Mike 02.11.2017 / 20:03

1 resposta

3

As soluções são:

# 1 Duplicação de regras

location ~*  \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
    expires 7d;
}

location /data/ {
    root /mnt/data;

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
        expires 7d;
    }
}

# 2 Symlink

Você pode criar um link simbólico: $document_root/data -> /mnt/data .

    
por 02.11.2017 / 20:16