Faidon Liambotis has submitted this change and it was merged. Change subject: varnish: simplify the mobile redirect regexp ......................................................................
varnish: simplify the mobile redirect regexp Now that we don't have to maintain squid redirector compatibility, rewrite the huge, almost unreadable, mobile redirect regexp in three distinct, easier to maintain redirects. This was done with efficiency in mind and avoids checking for the same match twice. The three redirects are likely to be slower than one, but this is hopefully offset by not checking for e.g. "wikimedia" three times. Plus, the regsubs are within the multiple-clause UA/cookie/url guard, so it only does matter for a small minority of hits. Change-Id: Iebfbc46d1a6a878d5c0dddd74ac44b8f2a8cda82 --- M templates/varnish/text-frontend.inc.vcl.erb 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: JanZerebecki: Looks good to me, but someone else must approve Faidon Liambotis: Looks good to me, approved jenkins-bot: Verified diff --git a/templates/varnish/text-frontend.inc.vcl.erb b/templates/varnish/text-frontend.inc.vcl.erb index c3474da..f857ac3 100644 --- a/templates/varnish/text-frontend.inc.vcl.erb +++ b/templates/varnish/text-frontend.inc.vcl.erb @@ -26,7 +26,14 @@ && req.http.User-Agent !~ "(iPad|Android.3|(?i)tablet|PlayBook|Wii)" && req.http.Cookie !~ "(stopMobileRedirect=true|mf_useformat=desktop)" && req.url ~ "^/wiki/") { - set req.http.MobileHost = regsub(req.http.Host, "^(?:www\.(?=mediawiki))?((?:commons|species|meta|incubator|outreach|strategy|wikimania201[234])\.(?=wikimedia)|(?!www)\w+\.(?!wikimedia|mediawiki)|(?=mediawiki|wikimediafoundation))(wikimedia|wikipedia|wiktionary|wikinews|wikisource|wikiquote|wikibooks|wikiversity|wikivoyage|mediawiki|wikimediafoundation)\.", "\1m.\2."); + + # Separate regexps for clarity, but multiple regsubs instead of + # "if host ~"/regsub matches for efficiency. Be careful to not + # write overlapping/chaining regexps. + set req.http.MobileHost = regsub(req.http.Host, "^(www\.)?(mediawiki|wikimediafoundation)\.", "m.\2."); + set req.http.MobileHost = regsub(req.http.Host, "^(commons|species|meta|incubator|outreach|strategy|wikimania201[234])\.(wikimedia)\.", "\1.m.\2."); + set req.http.MobileHost = regsub(req.http.Host, "^((?!www)\w+)\.(wikipedia|wiktionary|wikinews|wikisource|wikiquote|wikibooks|wikiversity|wikivoyage)\.", "\1.m.\2."); + if (req.http.Host != req.http.MobileHost) { if (req.http.X-Forwarded-Proto) { set req.http.Location = req.http.X-Forwarded-Proto + "://" + req.http.MobileHost + req.url; -- To view, visit https://gerrit.wikimedia.org/r/106669 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iebfbc46d1a6a878d5c0dddd74ac44b8f2a8cda82 Gerrit-PatchSet: 3 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Faidon Liambotis <fai...@wikimedia.org> Gerrit-Reviewer: Alexandros Kosiaris <akosia...@wikimedia.org> Gerrit-Reviewer: Faidon Liambotis <fai...@wikimedia.org> Gerrit-Reviewer: JanZerebecki <jan.wikime...@zerebecki.de> Gerrit-Reviewer: MaxSem <maxsem.w...@gmail.com> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits