From 62b4539a7fa37447690284a837663792eb91e745 Mon Sep 17 00:00:00 2001 From: rogerdz Date: Wed, 5 Mar 2025 04:18:03 +0000 Subject: [PATCH] fix duplicate cache for same param with varnish --- app/code/Magento/PageCache/etc/varnish4.vcl | 3 +++ app/code/Magento/PageCache/etc/varnish5.vcl | 3 +++ app/code/Magento/PageCache/etc/varnish6.vcl | 3 +++ app/code/Magento/PageCache/etc/varnish7.vcl | 3 +++ 4 files changed, 12 insertions(+) diff --git a/app/code/Magento/PageCache/etc/varnish4.vcl b/app/code/Magento/PageCache/etc/varnish4.vcl index c8aa542906c9b..08e435f24534f 100644 --- a/app/code/Magento/PageCache/etc/varnish4.vcl +++ b/app/code/Magento/PageCache/etc/varnish4.vcl @@ -22,6 +22,9 @@ acl purge { } sub vcl_recv { + # Sorting query string parameters + set req.url = std.querysort(req.url); + if (req.method == "PURGE") { if (client.ip !~ purge) { return (synth(405, "Method not allowed")); diff --git a/app/code/Magento/PageCache/etc/varnish5.vcl b/app/code/Magento/PageCache/etc/varnish5.vcl index 9bf8268fa8713..f7ba81d09a370 100644 --- a/app/code/Magento/PageCache/etc/varnish5.vcl +++ b/app/code/Magento/PageCache/etc/varnish5.vcl @@ -23,6 +23,9 @@ acl purge { } sub vcl_recv { + # Sorting query string parameters + set req.url = std.querysort(req.url); + if (req.method == "PURGE") { if (client.ip !~ purge) { return (synth(405, "Method not allowed")); diff --git a/app/code/Magento/PageCache/etc/varnish6.vcl b/app/code/Magento/PageCache/etc/varnish6.vcl index 7fa58b4809f8b..ff3d0368fb002 100644 --- a/app/code/Magento/PageCache/etc/varnish6.vcl +++ b/app/code/Magento/PageCache/etc/varnish6.vcl @@ -27,6 +27,9 @@ sub vcl_recv { set req.hash_always_miss = true; } + # Sorting query string parameters + set req.url = std.querysort(req.url); + if (req.method == "PURGE") { if (client.ip !~ purge) { return (synth(405, "Method not allowed")); diff --git a/app/code/Magento/PageCache/etc/varnish7.vcl b/app/code/Magento/PageCache/etc/varnish7.vcl index 3ac5990af8067..b6ab36b88f9f4 100644 --- a/app/code/Magento/PageCache/etc/varnish7.vcl +++ b/app/code/Magento/PageCache/etc/varnish7.vcl @@ -27,6 +27,9 @@ sub vcl_recv { set req.hash_always_miss = true; } + # Sorting query string parameters + set req.url = std.querysort(req.url); + if (req.method == "PURGE") { if (client.ip !~ purge) { return (synth(405, "Method not allowed"));