El estado de la caché de Nginx se pierde incluso después de agregar el almacenamiento en caché

El estado de la caché de Nginx se pierde incluso después de agregar el almacenamiento en caché

Soy nuevo en el almacenamiento en caché en nginx. He estado intentando configurar el almacenamiento en caché en el servidor, pero X-Cache-Status falla incluso después de agregar configuraciones para css/js/e imágenes. Esto provoca un tiempo de carga elevado y una velocidad lenta incluso con poco tráfico. ¿Alguna idea de lo que me estoy perdiendo?

A continuación se muestra el encabezado de respuesta:

Cache-Control   
max-age=86400
Connection  
keep-alive
Content-Encoding    
gzip
Content-Type    
text/css
Date    
Wed, 18 Jan 2017 16:00:34 GMT
Expires 
Thu, 19 Jan 2017 16:00:34 GMT
Last-Modified   
Mon, 19 Oct 2015 09:26:18 GMT
Server  
nginx/1.4.6 (Ubuntu)
Transfer-Encoding   
chunked
Vary    
Accept-Encoding
X-Cache-Status  
MISS

Estoy usando https donde estoy redirigiendo http a https. Aquí está el archivo habilitado para sitios que configuré.

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=TOMCAT:50m max_size=100m;
server {
   listen   80;
   server_name *.xyz.com;
   default_type text/html; 
   return 307 https://$host$request_uri;
   root   /var/lib/tomcat7/webapps;
   index  index.html index.jsp;
      location / {
    set $no_cache "";
        if ($request_method !~ ^(GET|HEAD)$) {
            set $no_cache "1";
        }
        if ($no_cache = "1") {
            add_header Set-Cookie "_mcnc=1; Max-Age=2; Path=/";
            add_header X-Microcachable "0";
        }
        if ($http_cookie ~* "_mcnc") {
            set $no_cache "1";
        }
    if ($request_uri ~* ".(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)(\?v=[0-9.]+)?$") {
    expires 1d;
    access_log off;
    break;
    }
      proxy_no_cache $no_cache;
        proxy_cache_bypass $no_cache;
        proxy_cache TOMCAT;
        proxy_cache_key $scheme$host$request_method$request_uri;
        proxy_cache_valid 200 302 1s;
        proxy_cache_valid 301 1s;
        proxy_cache_valid any 1s;
        proxy_cache_use_stale updating;
      sendfile off;
      proxy_pass         http://127.0.0.1:8080/;
      proxy_redirect     default;

      proxy_set_header   Host             $host;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_max_temp_file_size 0;
    add_header X-Cache-Status $upstream_cache_status;
      #this is the maximum upload size
      client_max_body_size       10m;
      client_body_buffer_size    128k;

      proxy_connect_timeout      90;
      proxy_send_timeout         90;
      proxy_read_timeout         90;

      proxy_buffer_size          4k;
      proxy_buffers              4 32k;
      proxy_busy_buffers_size    64k;
      proxy_temp_file_write_size 64k;
   }
}

server {
        server_name *.xyz.com;
        listen 443;

        ssl on;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #make sure you already have this certificate pair!
    ssl_certificate /etc/ssl/certs/xyz.crt;
        ssl_certificate_key /etc/ssl/certs/xyz.key;
        ssl_session_cache shared:SSL:10m;

        location / {
            set $no_cache "";
        if ($request_method !~ ^(GET|HEAD)$) {
            set $no_cache "1"; 
        }   
        if ($no_cache = "1") {
            add_header Set-Cookie "_mcnc=1; Max-Age=2; Path=/";
            add_header X-Microcachable "0"; 
        }   
        if ($http_cookie ~* "_mcnc") {
            set $no_cache "1";
        } 
    if ($request_uri ~* ".(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)(\?v=[0-9.]+)?$") {
    expires 1d;
    access_log off;
    break;
    }  
      proxy_no_cache $no_cache;
        proxy_cache_bypass $no_cache;
        proxy_cache TOMCAT;
        proxy_cache_key $scheme$host$request_method$request_uri;
        proxy_cache_valid 200 302 1s;
        proxy_cache_valid 301 1s;
        proxy_cache_valid any 1s;
        proxy_cache_use_stale updating;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
    add_header X-Cache-Status $upstream_cache_status;
            proxy_redirect off;
            proxy_connect_timeout      240;
            proxy_send_timeout         240;
            proxy_read_timeout         240;
            # note, there is not SSL here! plain HTTP is used
       proxy_pass http://127.0.0.1:8081;
        }
     }

Alguna sugerencia ?

Respuesta1

simplemente agrega esto. Esto establece la fecha de caducidad en la fecha máxima (algo así como 2037, según recuerdo) y el control de caché en 10 años.

location ~* \.(css|gif|ico|jpeg|jpg|js|png|woff|woff2|ttf|ttc|otf|eot)$ {
        expires max;
        log_not_found off;
    }

información relacionada