On Fri, 25 Sep 2015, Иван Мишин wrote:

Добрый вечер, Иван!

4.200 3.500 и т.д. это и есть время ответа от бека.

и например вот тут
www.site.ru x.x.x.x - [23/Jul/2015:15:15:14 +0300] "GET /a/b HTTP/1.1"
4.100 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:15:15:15 +0300] "GET /a/b HTTP/1.1"
0.000 " NGINX-CACHE-HIT

бек обрабатывал 4.100 как видно но следующий запрос уже через 1 сек получил
HIT не смотря на то что по идеи первый запрос еще в кеш не попал

Никакой неадекватности в работе кеша нет - вы просто не учитываете (или позабыли) тот факт, что время в лог пишется ровно в момент логирования - т.е. _по_окончании_ запроса.

Такое поведение nginx унаследовал от Apache.

В документации этот момент отражён, но вскользь - только при описании переменной "$msec"
  http://nginx.org/ru/docs/http/ngx_http_log_module.html#log_format


Поэтому ваши логи показывают, что всё происходит ровно как вами и было задумано:
- запрос пришёл в ~ 15:15:09.900
- бэкенд обработал его за 4.100 сек и в 15:15:14 была создана запись в логе
- следующий запрос пришёл в 15:15:15 и был отдан из кеша.


P.S.
Наверное, стОит расширить\дополнить описание модуля ngx_http_log, и ещё раз явно указать момент логирования при описании переменных
- $time_iso8601
- $time_local

Хуже, по крайней мере, точно не будет.


25 сентября 2015 г., 18:54 пользователь Aleksandr Sytar <
sytar.a...@gmail.com> написал:



25 сентября 2015 г., 17:21 пользователь Иван Мишин <simplebo...@gmail.com>
написал:

Кеш заведен на 20 минут при этом иногда бывает что кеш как-бы не
срабатывает.
Ключи кеша proxy_cache_key $server_name$request_uri
Вот пример из логов адекватной работы:

www.site.ru x.x.x.x - [23/Jul/2015:11:02:32 +0300] "GET /a/b HTTP/1.1"
4.200 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:11:02:44 +0300] "GET /a/b HTTP/1.1"
0.000 " NGINX-CACHE-HIT

www.site.ru x.x.x.x - [23/Jul/2015:13:11:02 +0300] "GET /a/b HTTP/1.1"
4.200 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:13:11:02 +0300] "GET /a/b HTTP/1.1"
0.000 " NGINX-CACHE-HIT

www.site.ru x.x.x.x - [23/Jul/2015:15:15:14 +0300] "GET /a/b HTTP/1.1"
4.100 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:15:15:15 +0300] "GET /a/b HTTP/1.1"
0.000 " NGINX-CACHE-HIT


А вот пример неадекватной работы:

www.site.ru x.x.x.x - [23/Jul/2015:11:15:41 +0300] "GET /a/b HTTP/1.1"
4.000 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:11:15:46 +0300] "GET /a/b HTTP/1.1"
4.200 " NGINX-CACHE-EXPIRED

www.site.ru x.x.x.x - [23/Jul/2015:12:57:34 +0300] "GET /a/b HTTP/1.1"
3.500 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:12:57:38 +0300] "GET /a/b HTTP/1.1"
4.100 " NGINX-CACHE-EXPIRED

www.site.ru x.x.x.x - [23/Jul/2015:17:42:33 +0300] "GET /a/b HTTP/1.1"
3.600 " NGINX-CACHE-EXPIRED
www.site.ru x.x.x.x - [23/Jul/2015:17:42:38 +0300] "GET /a/b HTTP/1.1"
4.100 " NGINX-CACHE-EXPIRED



Куда копать?


Добавить логгирование времени ответа бекенеда и понять успевает ли он
ответить за 5 секунд

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
Best regards,
Andrey Kopeyko <and...@kopeyko.ru>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить