Могу ли я переформатировать параметры моего URL с помощью Varnish - PullRequest
2 голосов
/ 23 августа 2010

У меня есть относительно простой (я думаю) вариант использования, но я не могу найти примеров, когда кто-то сделал это.Мы используем Varnish в качестве кэша и обратного прокси-сервера перед двумя разными приложениями и хотели бы сделать вещи немного более единообразными в обоих, поскольку они оба делают схожие вещи.Я надеялся, что Varnish поможет переписать URL-адреса, как показано ниже.

Исходный URL-адрес приложения для разбивки на страницы (получите первые 10 элементов):

http://myapplication.com/products/?startindex=1&endindex=10

Желаемый URL-адрес:

http://myapplication.com/products/?paginate=1:10

Это только один пример (самый сложный, потому что он объединяет два параметра), но во всех случаях входные значения параметров остаются неизменными, просто имена параметров будут меняться.

Другой примербудет:

http://myapplication.com/search/?query=something

до:

http://myapplication.com/search/?q=something

Кто-нибудь имеет опыт работы с лаком и как это можно сделать?

Спасибо

1 Ответ

5 голосов
/ 25 августа 2010

Видимо, вы можете.Ответ в том, что regsub - ваш друг.

Например:

if (req.url ~ "(.*)(id=)") {
        set req.url = regsub(req.url, "(feeds/[a-zA-Z]*/)(.*)([\?|&])(id=)([a-zA-Z0-9]*)(.*)", "\1\2\3byGuid=\5\6");
}

Это преобразует входящий параметр "id" в параметр "byGuid" на серверной части.t также делает кучу вещей с остальной частью строки URL, но основы есть.Поэтому, если кто-то хочет сделать что-то подобное, это хорошая отправная точка.

...