Skip to content
/ pixelf Public

Система отслеживания количества просмотров сайтов пользователями

Notifications You must be signed in to change notification settings

penyaev/pixelf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pixelf

Система отслеживания количества просмотров сайтов пользователями

Демо

  • Выдерживает более 30 запросов/сек. (на демо-проекте держится постоянная нагрузка 150-200 rps)
  • Страницы админки отдаются в среднем менее чем за 200 мс (счетчик времени ответа сервера присутствует в футере каждой страницы)
  • Умеет отмечать пользователей, запросивших более порогового значения разных адресов (такие помечаются как "заинтересованные"):
  • Строит графики нагрузки на систему, на пиксели и активности юзеров в реальном времени: демо
  • Позволяет вести параллельный мониторинг нескольких пикселей: демо
  • Отображает статистику по каждому пикселю и позволяет настраивать порог срабатывания пометки "заинтересованный": демо
  • Отображает статистику по каждому пользователю: демо
  • Умеет искать по всем пикселям и пользователям (поисковое поле в шапке)

Установка

  • Склонировать репозиторий
  • Настроить веб-сервер на отдачу всей статики (*.css|js|jpg|eot|svg|ttf|woff) из директории public/
  • Все остальные запросы реврайтить на public/index.php/$request
  • В случае apache можно взять готовый .htaccess из корня репозитория:
RewriteEngine On
RewriteBase /pixelf

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!public)(.*\.(css|js|png|jpg|gif|otf|eot|svg|ttf|woff|crx|swf))$ public/$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!public)(.*)$ public/index.php/$1 [L,QSA]
  • Для случая nginx+php-fpm привожу типичный конфиг:
server {
        listen 80;
        server_name pixelf.penyaev.com;

        location ~* ^.+\.(jpg|jpeg|gif|png|js|css|html|xml)$ {
                root /home/sites/pixelf/public;
        }

        location / {
                rewrite ^ /index.php;
        }

        location ~ ^/index.php$ {
                root /home/sites/pixelf/public;
                fastcgi_intercept_errors on;
                fastcgi_pass        127.0.0.1:9000;
                fastcgi_index       index.php;
                fastcgi_param       SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}
  • Накатить дамп базы данных из sql/up.sql (разработчик пользовался mysql-5.6.12)
  • Удостовериться, что в установке php (5.5.12) присутствует и включен mysqlnd
  • Проверить, что проект открывается в браузере
  • Чтобы было не так грустно, проект можно наполнить тестовыми данными и включить симуляцию нагрузки, для этого:
  • Создать 1000 пикселей (случайным образом: используется словарь самых популярных английских слов для доменов 2-го уровня и список существующих TLD):
  • Включаем эмуляцию нагрузки: ```php public/console.php click load
```1000 requests done (total 112000) within last 5.0 seconds, avg rps=199.17

Комментарии

Система была написана с нуля в довольно сжатые сроки, поэтому не претендует на звание законченного продукта. Это где-то около MVP, демонстрирующего основной функционал. Во многих частях системы не предусмотрена проверка входных данных и слабо настроен отлов ошибок: автор не преследовал цели написать production-ready систему, задачей его стояло сделать "каркас", реализующий базовые возможности. Одним из условий был отказ от ООП, поэтому по ходу дела был написан свой мини-фреймворк.

About

Система отслеживания количества просмотров сайтов пользователями

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published