Como servir vários locais a partir de uma única raiz?

1

O nginx serve arquivos estáticos que mapeiam de caminhos uri para caminhos de pastas como:

www.tempuri.org/js <=> /var/www/plublic/js
www.tempuri.org/css <=> /var/www/plublic/css
www.tempuri.org/img <=> /var/www/plublic/img
www.tempuri.org/foobar <=> /var/www/plublic/foobar

No meu nginx conf, as regras para isso, essencialmente, todas têm a mesma raiz:

location /js/ {
   root /var/www/public/;
}
location /css/ {
   root /var/www/public/;
}
location /foobar/ {
   root /var/www/public/;
}
location /img/ {
   root /var/www/public/;
}

Como posso escrever uma única regra para todos os 4 caminhos?

location /(css|js|img|foobar)/ {
   root /var/www/public
}

?

    
por Alan 22.05.2013 / 03:50

2 respostas

3

root deve ser colocado no bloco server , não no bloco location . Este é um dos misconfigurations mais comuns do nginx .

Essa alteração também corrigirá seu problema e eliminará a necessidade desse bloco location .

    
por 22.05.2013 / 04:01
3

Você praticamente tem isso.

location ~ ^/(css|js|img|foobar)/ {
    root /var/www/public/;
}
    
por 22.05.2013 / 03:54

Tags