Nginx proxy_pass baseado na extensão de arquivo e na string de consulta

1

Eu preciso usar o proxy_pass de ativos estáticos (.js .css) com base nas extensões de consulta e de arquivo.

Por exemplo:

domain.com/foo.css - ir para o upstream1 domain.com/foo.css?V=1234 - ir para o upstream2

O motivo é que eu tenho uma configuração de 3 servidores - um roteador, um servidor de aplicativos e um servidor estático. Eu gostaria que qualquer solicitação com o URL limpo domain.com/foo.cs fosse enviada para upstream1 (onde meu servidor estático está configurado). E qualquer solicitação que tenha a URL de cadeia de consulta domain.com/foo.css?V=1234 para ir para upstream2 (onde meu servidor de aplicativos está configurado).

Talvez isso possa ser feito usando o link ?

Obrigado!

    
por Radoslav Stefanov 22.10.2014 / 11:50

1 resposta

2

Use um mapa .

map $arg_v $node {
    default        upstream1;
    "~^[0-9]+$"    upstream2;
}


server {

    listen 80;
    server_name domain.com;

    location ~ \.(css|js)$ {
        proxy_pass http://$node;
    }

 }
    
por 22.10.2014 / 12:44