nginx에서 쿼리 매개변수를 쿠키로 쓰는 방법이 있습니까?

nginx에서 쿼리 매개변수를 쿠키로 쓰는 방법이 있습니까?

쿼리 매개변수를 특정 URL의 쿠키로 설정할 수 있는 방법이 있는지 묻고 싶습니다.

현재 나는 GA에 문제를 일으키는 utm 매개변수를 제거하고 있었기 때문에 광택제와 nginx에 문제가 있습니다. utm 매개변수를 제거하는 코드는 바니시 캐시를 가득 채울 수 있으므로 제거할 수 없습니다. 그래서 나는 utm 매개변수를 가져와 nginx 구성에서 쿠키로 설정하려고 생각했습니다.

어떤 도움이라도 주시면 감사하겠습니다.

매우 감사합니다

답변1

Varnish가 백엔드에서 가져오는 URL에서 Google 마케팅 URL 매개변수를 쉽게 제거할 수 있습니다.여기에 설명되어 있습니다:

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의 경우 해당 매개변수는 삭제될 수 있음)).

관련 정보