Установка Piwik с nginx + лаком + memcached = не можете войти?

Я переместил установку piwik с сервера apache на nginx, используя лак и memcached. Я не уверен, когда, но в какой-то момент он перестал позволять мне войти, выдав ошибку:

Ошибка: безопасность формы не удалась. Пожалуйста, перезагрузите форму и проверьте, что
ваши куки включены. Если вы используете прокси-сервер, вы должны
настроить Piwik для принятия заголовка прокси, который перенаправляет хост
заголовок. Также убедитесь, что ваш заголовок Referrer отправлен правильно.

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

Я попытался положить:

proxy_client_headers[] = HTTP_X_FORWARDED_FOR
proxy_host_headers[] = HTTP_X_FORWARDED_HOST

В конфиге piwik это не помогло.

В конфиге лака я ставлю под vcl_recv:

if (req.url ~ "piwik" {
set req.http.X-Forwarded-For = client.ip;
return (pass);
}

Это тоже не помогло.

Я в конце моего остроумия здесь. Кто-нибудь знает, что может быть не так в моей конфигурации, или как я мог узнать? Я попытался поместить return (pass) в верхнюю часть vcl_recv (предполагая, что это в основном отключит все кэширование лака), и это не помогло. Есть ли способ отладки piwik, чтобы понять, в чем проблема? Спасибо!

ОБНОВИТЬ: После сильной головной боли я понял, что на самом деле это случай неправильного кэширования piwik. Я не мог придумать рабочее решение (я попробовал решения, предлагаемые здесь).

В конечном итоге, мое решение: Я сделал, чтобы лак слушал на порту 80, но piwik слушает на порту 85 с nginx вместо этого, полностью обходя лак. Все снова работает на 100%! Это, очевидно, не самый идеальный вариант решения, но он работает, и это спасает меня от разочарований, которые следует потратить в другом месте. Спасибо всем за помощь.

3

Решение

Я не уверен в этом, но Form security failed предложил бы мне, что, возможно, Varnish кэшировал страницу входа в систему. И я думаю, что в форме входа есть маркер CSRF (уникальный идентификатор), который меняется каждый раз.

Поэтому, возможно, из-за кеша токен CSRF всегда одинаков и поэтому недопустим при попытке входа в систему. Не могли бы вы настроить Varnish, чтобы форма входа не кэшировалась?

0

Другие решения

Вы должны обходить лак при использовании piwik

sub vcl_recv {

if (req.url ~ "^/piwik(.*)")  {
return(pass);
}
}

если вы используете поддомен

sub vcl_recv {
if (req.http.Host == "piwik.domain.com") {
return (pipe);
}
}
0

По вопросам рекламы [email protected]