Как записывать просмотры страниц на сайте при использовании Varnish

Я разрабатываю новостной сайт, который будет иметь много просмотров (надеюсь). И мы строим его вокруг PHP, Laravel, Mysql и Varnish.

Мой вопрос: как мы можем узнать, сколько просмотров было на странице новостей? Делаем ли мы время от времени запрос API Google? Или мы увеличиваем счетчик в базе данных через Varnish?

У кого-нибудь была эта проблема раньше? Мы не хотим заново изобретать что-то, что уже является стандартом.

У меня была одна идея - сделать запись AJAX POST при загрузке страницы и сделать ее случайным образом, скажем, один раз из 100 запросов, но это очень странно. Должны быть лучшие решения?


person alex toader    schedule 18.01.2018    source источник


Ответы (2)


Я думаю, что этот вопрос может быть в первую очередь основан на мнении, что противоречит правилам Stackoverflow.

Если бы я был на вашем месте, я бы просто использовал Google Analytics, это сэкономит вам время, нервы и даст вам много дополнительных функций, которые могут быть вам полезны.

Но тем не менее, если вы хотите сделать это без использования внешнего общедоступного сервиса, просто ради изучения чего-то нового, вы можете включить журналы доступа в своем лаке, отправить их в ElasticSearch, а с помощью Kibana вы можете создавать информационные панели, предоставляющие вам такую ​​​​информацию. . Это так называемый стек ELK.

Дополнительную информацию об этом можно найти здесь: https://www.elastic.co/blog/getting-started-with-elk

person Esteban Garcia    schedule 18.01.2018
comment
Спасибо, Гарсия. Но как мне это реализовать? Делаю запросы время от времени в гугл с кроном - скажем для новостей на первой странице делаю запросы раз в 2 минуты? И затем, когда страница загружается, я делаю новый запрос ajax, чтобы загрузить их на страницу? Что-то вроде этого не так ли? Проблема, с которой я могу столкнуться, заключается в том, что мне придется делать слишком много запросов и работать на сервере, что может быть даже больше, чем делать себя спасательным корытом с помощью Varnish? - person alex toader; 19.01.2018
comment
Да, но Google Analytics покажет вам уникальные посещения, в то время как при лакировке будут отображаться только посещения страниц, и вам придется использовать логику для преобразования их в уникальные посещения (при условии, что вы этого хотите). - person Esteban Garcia; 19.01.2018

Вам следует использовать внешнее решение для аналитики (например, Google Analytics, Mixpanel, Piwik и т. д.), для чего они нужны: они работают на стороне клиента (в браузере), так что это не имеет значения. независимо от того, кэшированы ли ваши страницы или нет, действительно ли запросы попадают на ваши серверы или нет и т. д.: пока ваши клиенты могут загружать страницы в своем браузере, они будут загружать код аналитики (JavaScript), который затем будет собирать данные о просмотрах страниц.

Преимущества перед бэкэнд-аналитикой:

  • Инфраструктура не требуется
  • Plug-and-play (большинство инструментов работают, просто добавив несколько строк JavaScript)
  • Не раздувать код и не замедлять работу приложения с помощью вызовов API аналитики.
person Max    schedule 18.01.2018
comment
привет Макс - моя проблема в том, как мне узнать просмотры страниц для каждой страницы новостей - чтобы показать число на странице - эта статья была прочитана 1000 раз. - person alex toader; 19.01.2018
comment
Извините, но вы смешиваете так много понятий (новая страница, просмотр страницы, статья, чтение), что я запутался. - person Max; 19.01.2018