Welcome! Log In Create A New Profile

Advanced

Re: Некорректный ответ при использовании fastcgi cache background update on

Gena Makhomed
April 09, 2018 02:44PM
On 09.04.2018 21:08, Maxim Dounin wrote:

>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http file cache exists: 0 e:1
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 cache file: "/var/www/site/cache/pages/49/1d/2756424aaf76d1f24c982e863d611d49"
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 add cleanup: 00005594C08CB288
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http file cache fd: 52
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 read: 52, 00005594C08CB308, 475, 0
>
> [...]
>
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi record length: 74
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi parser: 0
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi header: "Content-Type: text/html; charset=UTF-8"
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi parser: 0
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi header: "Status: 200"
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi parser: 0
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi header: "Content-Length: 0"
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi parser: 1
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http fastcgi header done
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 http file cache send: /var/www/site/cache/pages/49/1d/2756424aaf76d1f24c982e863d611d49
>> 2018/04/09 18:21:23 [debug] 29576#29576: *3395329 HTTP/1.1 200
>
> [...]
>
> Судя по приведённому debug log'у, в кэше лежит валидный ответ
> бэкенда с "Status: 200" и "Content-Length: 0", который и отдаётся
> клиенту.
>
> Очевидно, что ответ этот nginx не сам придумал, а получил от
> бэкенда. Почему бэкенд прислал именно такой ответ - надо смотреть
> в debug log'е в тот момент, когда это произошло.

С бэкендом все нормально. Это глюк на стороне nginx.

Такой глюк происходит в том случае, когда из интернета на сайт
отправляется запрос HEAD - есть очень много роботов, которые сначала
отправляют HEAD запрос, и потом только делают нормальный GET запрос.

Причина в том, что в документации для директивы fastcgi_cache_key
указано некорректное с точки зрения протокола HTTP значение
localhost:9000$request_uri - так оно нормально работать не будет.

Даже если добавить туда $scheme и $host, например, так:
fastcgi_cache_key "$scheme://$host$request_uri";
- этот глюк с пустыми ответами все равно останется.

Пока что существует только один workaround:
добавить $request_method в fastcgi_cache_key
Например, вот так:

fastcgi_cache_key "$request_method $scheme://$host$request_uri";

Подозреваю что сейчас в интернете есть очень много сайтов, которые
используют модуль fastcgi, на которых включено кеширование в nginx
и значение директивы fastcgi_cache_key скопировано из документации.

Идеальным вариантом решения проблемы было бы добавление директивы
fastcgi_cache_convert_head со значением "on" по умолчанию,
по аналогии с имеющейся директивой proxy_cache_convert_head.

--
Best regards,
Gena

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

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 09, 2018 10:38AM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 09, 2018 01:43PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 09, 2018 02:10PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Gena Makhomed April 09, 2018 02:44PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 09, 2018 02:50PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 09, 2018 03:09PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 09, 2018 04:06PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 09, 2018 04:28PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 16, 2018 01:50PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 16, 2018 02:56PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 16, 2018 03:17PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 16, 2018 04:36PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 16, 2018 04:52PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 17, 2018 08:40AM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 17, 2018 12:17PM

Re: Некорректный ответ при использовании fastcgi cache background update on

Maxim Dounin April 17, 2018 12:32PM

Re: Некорректный ответ при использовании fastcgi cache background update on

gz April 18, 2018 03:20PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 306
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready