Назад | Перейти на главную страницу

Nginx proxy_pass на основе расширения файла и строки запроса

Мне нужно 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;
    }

 }