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

Reply via email to