Пятница, 17 Июль 2009

nginx: статус по url

Продолжаем хачить статус. Вот патч, который добавляет статистику по запрашиваемым url от пользователей.

Статистика собирается по URL которые пришли от пользователя, до всех rewrite, т.е. это именно то, что спросили клиенты. Статистика из памяти не удаляется и в один прекрасный момент наступит ситуация, что память кончилась и новая статистика появляться не будет. Для включения этой функциональности, после наложения патча, надо добавить --with-http_status_heap_module в опции конфигурации.

Описание директив:

syntax: status_heap уникальный_ключ объем_памяти
default: отсутствует
context: server

Директива устанавливает размер памяти и ключ для подсчета статистики в этом сервере. Если в несколькоих серверах будет использоваться одинаковый ключ и размер — то статистика будет общей.

syntax: status_heap_show
default: отсутствует
context: location

Директива устанавливает, что этот location будет использоваться для отображения статистики для статистики, которая собирается в пределах этого сервера, только для url, который будет передан после имени этого location.

syntax: status_heap_show_all
default: отсутствует
context: location

Директива устанавливает, что этот location будет использоваться для отображения всей статистики для статистики, которая собирается в пределах этого сервера.

Пример использования

Допустим у нас будет конфиг вида:

server {    
  listen   8080 default;

  status_heap default_status_heap 50m;

  location / {
      root /var/www;
  }
}

server {    
  listen   127.0.0.1:8080;

  status_heap default_status_heap 50m;

  location /heap {
      status_heap_show;
  }

  location /heap_all {
      status_heap_show_all;
  }
}

Соотвтесвенно, при запросе:

curl http://127.0.0.1:8080/heap/

мы получим, сколько раз у нас люди спрашивали /. Просто число.

А при:

curl http://127.0.0.1:8080/heap_all/

мы получим выдачу, вида:

/   1
/test.html  10

В качестве разделителя используется табуляция.

Для пимера вы можете посмотреть сюда и сюда.

Для хранения информации об 1 url требуется (для amd64, на i386 потребление будет ниже) 80 байт + длина uri. Т.е. можно выдать 50-100 мегабайт и забыть.

Написано в: 14:37 | 3 комментария | | теги: , , , , | постоянная ссылка |
Добавить пост в:   Delicious Reddit Slashdot Digg Technorati Google


Последние комментарии

Пингбэки

RPM nginx-catap 0.8.6 for CentOS 5/Fedora-11 « Записки бОяниста @centos.alt.ru 20.07.2009 17:41
Кирилл Коринский выпустил очередную версию fork-а nginx – nginx-catap 0.8.6 в которую добавлен еще один патч.

Комментарии

Serj 16.07.2009 17:51

Пока выглядит вкусненько :)

ответить

Форма комментирования для «nginx: статус по url»

Обязательное поле. Не больше 30 символов.

Обязательное поле

Alrond 27.10.2009 17:12

Вываливается с ошибкой:
ngx_http_status_heap_module.c:210: warning: ‘b’ may be used uninitialized in this function
исправляеся добавлением нуля:
ngx_buf_t *b = NULL;

ответить