[PATCH] skip apply "ngx_http_upstream_process_accel_expires" when a request responeded by cache

Maxim Dounin mdounin at mdounin.ru
Sun Jun 21 21:11:15 UTC 2020


Hello!

On Fri, Jun 19, 2020 at 09:41:37AM +0900, TAKADA Sokichi wrote:

> # HG changeset patch
> # User TAKADA Sokichi <takada at jocdn.co.jp>
> # Date 1592383243 -32400
> #      Wed Jun 17 17:40:43 2020 +0900
> # Node ID d5bbe3ad1f1491125485786aacc5d219c81801d1
> # Parent  8cf31489b479b689b7ff4a9601ce24c914d0394c
> skip apply "ngx_http_upstream_process_accel_expires" when a request responeded by cache
> 
> "ngx_http_upstream_process_accel_expires" is calculate and set valid_date value when a request respond by a cache, even though it will never use in the response.
> This patch to skip unnecessary process.
> 
> On the other hands, this has good side effect to can get TRUE valid_date value of the cache file in "header filter" and "log" hook handler.
> i.e. I would like to get the TRUE valid_date of cache in header_filter_by_lua or log_by_lua handlers.
> 
> diff -r 8cf31489b479 -r d5bbe3ad1f14 src/http/ngx_http_upstream.c
> --- a/src/http/ngx_http_upstream.c	Mon Jun 15 17:35:26 2020 -0400
> +++ b/src/http/ngx_http_upstream.c	Wed Jun 17 17:40:43 2020 +0900
> @@ -4776,6 +4776,10 @@
>          return NGX_OK;
>      }
>  
> +    if (r->cached == 1) {
> +        return NGX_OK;
> +    }
> +
>      len = h->value.len;
>      p = h->value.data;

Thanks for the patch.

The cache validity time as obtained from cached responses is used 
while processing 304 responses during cache revalidation, so the 
suggested change looks wrong to me.

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx-devel mailing list