NGiNX Пользовательский параметрический усилитель Кэша на основе соответствия regex

Мой вопрос (вопросы) следующие:

  • Как я устанавливаю пользовательские переменные на основе regexp против useragent?
  • Как я устанавливаю пользовательские заголовки для запроса обратного прокси?
  • Как я использую эти значения в качестве кэширующихся параметров?

Подробнее:

Я делаю начальный вывод в своем приложении на основе агента пользователя, анализирующего..., который в основном ломает запрос, представляющий, таким образом, начальный рендеринг будет соответствовать размерам начальной загрузки "xs", "см", "md", "LG"...

Мне разработали мои регулярные выражения так, чтобы мобильные устройства были произведены представленные для "xs", и общие планшеты получат "см" по умолчанию, кто-либо еще получает "md"... после клиентской привязки, это будет корректироваться к дисплею существующего устройства, это главным образом так, чтобы браузеры получили размер, в котором они нуждаются.

То, что я хочу смочь сделать:

  • на основе соответствия шаблона против агента пользователя, установленного несколько параметров, которые будут переданы через (обратный прокси) моему приложению
    • X-Initial-Size - "xs", "см", "md", "LG" (реалистично ничто не решит к "LG"
    • X-Is-Human - соответствие против известных ботов для обнаружения
    • X-Browser-Class - "древний", "современный", "ie#" (IE <= 9 только)
  • использовать X-Initial-Size и X-Browser-Class как vary-by параметрические усилители для дольше жившего кэширования вывода серверной стороны.
0
задан 26 November 2014 в 23:22
1 ответ

- Как установить пользовательские переменные на основе регулярного выражения для агента пользователя?

Используйте карту . Например:

map $http_user_agent $my_var {
    default     "default_value";
    "~^foo$"    "value_1";
    "~^bar$"    "value_2";
}

- Как мне установить собственные заголовки для запроса обратного прокси?

Используйте proxy_set_header . Например:

proxy_set_header My-Header $my_var;

- Как использовать эти значения в качестве параметров кэширования?

Определите эти дополнительные заголовки как часть ключа кеширования вашего прокси :

proxy_cache_key $scheme$request_uri-$http_my_header-$http_my_other_header
2
ответ дан 4 December 2019 в 13:54

Теги

Похожие вопросы