Мне нужно proxy_pass статические активы (.js .css) на основе расширения файла и строк запроса.
Например:
domain.com/foo.css - перейти на upstream1 domain.com/foo.css?V=1234 - перейти на upstream2
Причина в том, что у меня установлено 3 сервера - маршрутизатор, сервер приложений и статический сервер. Я хотел бы, чтобы любой запрос с чистым URL-адресом domain.com/foo.cs перешел на upstream1 (где настроен мой статический сервер). И любой запрос, который имеет строку запроса url domain.com/foo.css?V=1234, чтобы перейти на upstream2 (где настроен мой сервер приложений).
Может быть, это можно сделать с помощью http://wiki.nginx.org/HttpLuaModule?
Спасибо!
Использовать карта.
map $arg_v $node {
default upstream1;
"~^[0-9]+$" upstream2;
}
server {
listen 80;
server_name domain.com;
location ~ \.(css|js)$ {
proxy_pass http://$node;
}
}