можно как-то так делать (держим в разделяемой памяти счетчики, которые
увеличиваем при обращении, снимаем счетчики через http) .....
#########################
lua_shared_dict focus 10M;
server {
listen 1.1.1.1:80;
server_name a.b.c;
location / {
proxy_pass http://cleared.backend;
log_by_lua '
local newval, err =
ngx.shared.focus:incr(ngx.var.upstream_addr, 1)
if not newval and err == "not found" then
ngx.shared.focus:add(ngx.var.upstream_addr, 1)
end
';
}
location /status {
content_by_lua '
ngx.say("clear: ", ngx.shared.focus:get("192.168.1.1:80") )
';
}
}
15 июня 2013 г., 15:51 пользователь Валентин Росавицкий
<valintinr@xxxxxxxxxxxxxx> написал:
Здравствуйте.
Имеется такой себе кластер который фильтрует 'плохой' трафик. Фронтэндом
стоит nginx который после всех проверок (кука и iptables-правила) проксирует
'чистый' трафик на бэкенды. Стоит задача как бы его правильно/просто
собирать статистику по каждому проксируемому домену, например active
connections с stub_status. Он у нас работает в отдельном server {};
проксируемые домены - каждый в своем server {};. Если я правильно понял то
stub_status собирает для всего http {}; а нужно для server-ов собирать. Что
можете подсказать?
P.S Не обязательно через stub_status собирать, можно и другие варианты. У
нас просто сейчас так, потом в rrd базу запихиваем и получается почти
удобно.
--
С уважением,
Валентин Росавицкий
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru