Friday, 17 July 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 мегабайт и забыть.

Write on: 14:37 | 3 comments | | tags: , , , , | permalink |
Add post to:   Delicious Reddit Slashdot Digg Technorati Google


Add comment

Pingbacks

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 в которую добавлен еще один патч.

Comments

Serj 16.07.2009 17:51

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

reply
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;

reply
Kirill A. Korinskiy 8.12.2009 16:28

undefined

reply

Comment form for «nginx: статус по url»

Required. 30 chars of fewer.

Required.