Re: отражение в access-логе факта, был ответ взят из кеша или нет

Andrew Kopeyko kaa на zvuki.ru
Пн Дек 27 11:36:37 MSK 2010


On Mon, 27 Dec 2010, Илья Шипицин wrote:

> Добрый день!

Добрый день, Илья!

> не могу найти переменную, чтобы добавить в access.log поле, был данный
> запрос взят из кеша или нет. подскажите ?

Вам надо писать в лог переменную $upstream_response_time.

Я предпочитаю писать её вместе с $request_time в виде отдельного токена (для 
удобства последующего анализа лога) :
   ' "$request_time[$upstream_response_time]" '

В случае, если ответ был отдан из кеша, запишется
   "0.021[-]"


> а если апстримов много, как будет работать ?

И это тоже подробно рассказано в документации. Процитирую для вашего 
удобства:

Если при обработке запроса были сделаны обращения к нескольким серверам, то 
их адреса разделяются запятой, например, "192.168.1.1:80, 192.168.1.2:80, 
unix:/tmp/sock". Если произошёл внутренний редирект от одной группы серверов 
на другую с помощью "X-Accel-Redirect" или error_page, то эти группы 
серверов разделяются двоеточием, например, "192.168.1.1:80, 192.168.1.2:80, 
unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80".

см. http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#variables


-- 
Best regards,
Andrew Kopeyko <kaa at zvuki.ru>


Подробная информация о списке рассылки nginx-ru