Измените реферера в заголовке с помощью Varnish

Я думаю, что это возможность с лаком, где вы можете изменить реферер в заголовке своих пользователей, а затем обслуживать их контент либо из кэша, либо с сервера. Я хочу знать, как это можно сделать возможным.

Я попытался сделать это с помощью "req.http.referer", а затем "установить req.http.referer" в лаке 2.1 на 32-битной машине centos, но это не сработало, когда я проверил результаты командой "varnishtop -i TxHeader - Я рефери ".

У кого-нибудь есть идеи лучше, чем эта?

1 ответ

По крайней мере, на Varnish 3.0 работает следующее, как и ожидалось. Очевидно, что если ответ подается из кэша и вы не используете req.http.Referer для hash(), то не имеет значения, как вы изменили заголовок реферера.

# Modify Referer header
sub vcl_recv {
  if (req.http.Referer) {
     # Referer was set. Replace foo with bar
     set req.http.Referer = regsub(req.http.Referer,"foo","bar");
  } else {
     # Referer was not set. Set it to something anyway.
     set req.http.Referer = "http://referer.was.empty/";
  }
}

Также обратите внимание, что varnishtop -i TxHeader -I Referer чувствителен к регистру. если ты set req.http.referer тогда это не будет соответствовать -I Referer даже если ваш HTTP-сервер поймет referer: заголовок (в соответствии с RFC 2612 4.2 заголовки сообщений не чувствительны к регистру).

Другие вопросы по тегам