NGINX Proxy Cache Cache-Control

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

NGINX Proxy Cache Cache-Control

satay
Hello guys,

I'm having a hard time defining a proxy cache because my landing page
doesn't generate any HTML which can be cached. Quit complicated to explain,
let me show you some logs and curl requests:

curl:

curl -I https://....info/de
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 21 Jun 2018 11:56:15 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 135883
Connection: keep-alive
Keep-Alive: timeout=5
X-Magnolia-Registration: Registered
Access-Control-Allow-Origin: ...
Access-Control-Allow-Methods: GET, OPTIONS, HEAD
Access-Control-Allow-Headers: X-PINGOTHER, Origin, X-Requested-With,
Content-Type, Accept
Cache-Control: max-age=60, public
Expires: Thu, 21 Jun 2018 11:57:15 GMT
Last-Modified: Thu, 21 Jun 2018 11:55:46 GMT
X-UPSTREAM: 10.6.198.11:8080
...

NGINX Access Logs:

[22/Jun/2018:09:35:24 +0200] Cache: - 10.6.198.12:8080 0.022 304 865 IP
...-com.stage.....info /de
[22/Jun/2018:09:35:26 +0200] Cache: HIT - - 200 1151 IP
...-com.stage.....info /.resources/img/favicon.ico

NGINX Locations:

location ~*
\.(?:bmp|css|gif|ico|jng|jpe?g|js(on)?|png|svgz?|tiff?|wbmp|webp)$ {
  # caching
  expires                 max;
  proxy_cache             stage.....info_proxy-cache;
  proxy_cache_lock        on;

  # custom lines
  proxy_cache_use_stale error timeout updating invalid_header http_500
http_502 http_503 http_504;

  # proxy pass
  proxy_pass http://public.stage;

}


location ~* \.(?:html)$ {
  # caching
  expires                 15s;
  proxy_cache             stage.....info_proxy-cache;
  proxy_cache_lock        on;

  # custom lines
  proxy_cache_use_stale error timeout updating invalid_header http_500
http_502 http_503 http_504;

  # proxy pass
  proxy_pass http://public.stage;

}

I'm able to cache all static assets with proper file extension like .png,
.css, etc. pp. so this works like expected. My question is: is it possible
to define the caching behaviour because of the Cache-Type? My idea is to
take the result like "Content-Type: text/html;charset=UTF-8" and then to
proxy cache it if it is text/html. Does it make sense?

Cheers,
Szop

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,280242,280242#msg-280242

_______________________________________________
nginx mailing list
[hidden email]
http://mailman.nginx.org/mailman/listinfo/nginx
Reply | Threaded
Open this post in threaded view
|

Re: NGINX Proxy Cache Cache-Control

Peter Booth
Your question raises so many other questions:

1. The static content - jpg, png, tiff, etc. It looks as though you are serving them your backend and caching them. Are they also being built  on demand dynamically? If not, then why csche them? Why not deploy them to nginx and serve them directly?
2. The text content - is this fragments of html that don’t have names that end in html?

Sent from my iPhone

> On Jun 22, 2018, at 3:42 AM, Szop <[hidden email]> wrote:
> Something
> Hello guys,
>
> I'm having a hard time defining a proxy cache because my landing page
> doesn't generate any HTML which can be cached. Quit complicated to explain,
> let me show you some logs and curl requests:
>
> curl:
>
> curl -I https://....info/de
> HTTP/1.1 200 OK
> Server: nginx
> Date: Thu, 21 Jun 2018 11:56:15 GMT
> Content-Type: text/html;charset=UTF-8
> Content-Length: 135883
> Connection: keep-alive
> Keep-Alive: timeout=5
> X-Magnolia-Registration: Registered
> Access-Control-Allow-Origin: ...
> Access-Control-Allow-Methods: GET, OPTIONS, HEAD
> Access-Control-Allow-Headers: X-PINGOTHER, Origin, X-Requested-With,
> Content-Type, Accept
> Cache-Control: max-age=60, public
> Expires: Thu, 21 Jun 2018 11:57:15 GMT
> Last-Modified: Thu, 21 Jun 2018 11:55:46 GMT
> X-UPSTREAM: 10.6.198.11:8080
> ...
>
> NGINX Access Logs:
>
> [22/Jun/2018:09:35:24 +0200] Cache: - 10.6.198.12:8080 0.022 304 865 IP
> ...-com.stage.....info /de
> [22/Jun/2018:09:35:26 +0200] Cache: HIT - - 200 1151 IP
> ...-com.stage.....info /.resources/img/favicon.ico
>
> NGINX Locations:
>
> location ~*
> \.(?:bmp|css|gif|ico|jng|jpe?g|js(on)?|png|svgz?|tiff?|wbmp|webp)$ {
>  # caching
>  expires                 max;
>  proxy_cache             stage.....info_proxy-cache;
>  proxy_cache_lock        on;
>
>  # custom lines
>  proxy_cache_use_stale error timeout updating invalid_header http_500
> http_502 http_503 http_504;
>
>  # proxy pass
>  proxy_pass http://public.stage;
>
> }
>
>
> location ~* \.(?:html)$ {
>  # caching
>  expires                 15s;
>  proxy_cache             stage.....info_proxy-cache;
>  proxy_cache_lock        on;
>
>  # custom lines
>  proxy_cache_use_stale error timeout updating invalid_header http_500
> http_502 http_503 http_504;
>
>  # proxy pass
>  proxy_pass http://public.stage;
>
> }
>
> I'm able to cache all static assets with proper file extension like .png,
> .css, etc. pp. so this works like expected. My question is: is it possible
> to define the caching behaviour because of the Cache-Type? My idea is to
> take the result like "Content-Type: text/html;charset=UTF-8" and then to
> proxy cache it if it is text/html. Does it make sense?
>
> Cheers,
> Szop
>
> Posted at Nginx Forum: https://forum.nginx.org/read.php?2,280242,280242#msg-280242
>
> _______________________________________________
> nginx mailing list
> [hidden email]
> http://mailman.nginx.org/mailman/listinfo/nginx
_______________________________________________
nginx mailing list
[hidden email]
http://mailman.nginx.org/mailman/listinfo/nginx
Reply | Threaded
Open this post in threaded view
|

Re: NGINX Proxy Cache Cache-Control

satay
Thanks for the fast reply.

>1. The static content - jpg, png, tiff, etc. It looks as though you are
serving them your backend and caching them. Are they also being built on
demand dynamically? If not, then why csche them? Why not deploy them to
nginx and serve them directly?

There is a huge part of static content that is stored on a shared
filesystem, which is delivered from backend. Unfortunately I don't have any
chance to change this for now.

>2. The text content - is this fragments of html that don’t have names that
end in html?

Yes it seem's so.

Cheers,
Szop

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,280242,280275#msg-280275

_______________________________________________
nginx mailing list
[hidden email]
http://mailman.nginx.org/mailman/listinfo/nginx