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;
}
}
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!
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;
}
}
Tags nginx lua querystring