Есть ли способ записать параметры запроса в виде cookie в nginx?

Есть ли способ записать параметры запроса в виде cookie в nginx?

Я хотел бы спросить, есть ли способ установить параметры запроса в качестве cookie-файла определенного URL-адреса?

В настоящее время у меня возникли проблемы с Varnish и nginx, потому что они удаляли параметры utm, что вызывало проблему с GA. Я не могу удалить код, который удаляет параметры utm, так как он переполнит кэш Varnish. Поэтому я думал получить параметры utm и установить их как cookie из конфигурации nginx.

Любая помощь будет оценена по достоинству.

Большое спасибо

решение1

Вы можете легко удалить параметры URL-адреса маркетинга Google из URL-адреса, который Varnish извлекает из бэкэнда, например:описано здесь:

if (req.url ~ "(\?|&)(gclid|utm_[a-z]+)=") {
    set req.url = regsuball(req.url, "(gclid|utm_[a-z]+)=[-_A-z0-9+()%.]+&?", "");
    # remove trailing question mark and ampersand from URL
    set req.url = regsub(req.url, "[?|&]+$", "");
}

Это должно быть реализовано в vcl_recvпроцедуре конфигурации Varnish. Таким образом, URL, который вы видите, остается нетронутым в браузере (что важно для Google Analytics), но Varnish будет запрашивать и кэшировать на основе нормализованного URL без этих параметров (для бэкэнда, например, PHP эти параметры могут быть отброшены).

Связанный контент