Sto usando cakephp1.3 e alcune risorse sono risorse a tema (js, img ecc.) E altre non sono risorse a tema.Come si creano le risorse riscritte nella cache di nginx?
Le risorse non a tema sono memorizzate correttamente nella cache; ma le risorse tematiche non ottengono le intestazioni di scadenza corrette. Uso le riscritture nel blocco di posizione per aiutare a trovare risorse a tema, ma per qualche ragione, nginx non applica le intestazioni di cache corrette.
Ho allegato una copia della mia configurazione di nginx di seguito. Qualcuno ha risolto il modo in cui memorizzare le risorse riscritte?
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
#-----------------------------------------------------------------------------------------------------
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name ag_production;
access_log /var/log/nginx/ag.access.log;
error_log /var/log/nginx/ag.error.log;
rewrite_log on;
root /var/www/html/app/webroot/;
index index.php index.html index.htm;
set $no_cache 0;
location/{
try_files $uri $uri/ @rules;
}
location @rules {
rewrite ^(.+)$ /index.php?url=$1 last;
}
# Pass the PHP scripts to FastCGI server
# listening on 127.0.0.1:9000
location ~ \.php$ {
#try_files $uri =404;
fastcgi_cache my_cache;
fastcgi_cache_valid 200 60m; # Only cache 200 responses, cache for 60 minutes
fastcgi_cache_methods GET HEAD; # Only GET and HEAD methods apply
add_header X-Fastcgi-Cache $upstream_cache_status;
fastcgi_cache_bypass $no_cache; # Don't pull from cache based on $no_cache
fastcgi_no_cache $no_cache; # Don't save to cache based on $no_cache
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
# fastcgi_pass unix:/tmp/php-fastcgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on; # to support 404s for PHP files not found
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
try_files $uri $uri/ @rules;
expires -1;
access_log logs/static.log; # I don't usually include a static log
}
# Feed
location ~* \.(?:rss|atom)$ {
try_files $uri $uri/ @rules;
expires 1h;
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
try_files $uri $uri/ @rules;
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
try_files $uri $uri/ @rules;
expires 1y;
access_log off;
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# Deny access to .htaccess files,
# git & svn repositories, etc
location ~ /(\.ht|\.git|\.svn) {
deny all;
}
}
}
Questo non risponde alla mia domanda. È già chiaro che ho usato i file di prova, ciò di cui sono confuso è che Nginx non imposterà correttamente le intestazioni di scadenza, ma è sempre impostato su 24 ore. Per favore, leggi di nuovo la mia domanda. – user1658296