Nginx $ connections_active для каждого блока сервера - PullRequest
0 голосов
/ 18 октября 2018

Возможно ли иметь $ connections_active от заглушки nginx на блок сервера?Таким образом, я могу знать, сколько запросов в секунду делает каждый веб-сайт.Это относится только к глобальным соединениям через весь прокси.Если нет, то как я могу это сделать?

Я использую программирование openresty и lua.

1 Ответ

0 голосов
/ 12 января 2019

Вот как вы можете это сделать с помощью nginx & lua:

lua_shared_dict live_hosts 1M;

rewrite_by_lua_block {
  local dict = ngx.shared.live_hosts;
  if (not ngx.var.http_counted) then
     ngx.req.set_header("counted", "true");
     dict:incr(ngx.var.host, 1, 0);
  end
}

log_by_lua_block {
  local dict = ngx.shared.live_hosts;
  dict:incr(ngx.var.host, -1);
}

Затем вы можете получить доступ к ngx.shared.live_hosts:get('foo.com')

Примечание: добавленный заголовок counted необходим для обработки внутреннего перенаправления nginx: в этом случае rewrite_by_lua вызывается дважды, тогда как log_by_lua вызывается только один раз.ngx.ctx нельзя использовать (очищается при внутреннем перенаправлении)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...