在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。在常用的緩存設置里面有兩種方式,都是使用add_header來設置:分別為Cache-Control和Pragma。
nginx:
location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
add_header Pragma no-cache;
}
對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在服務器中設置expires過期時間,控制瀏覽器緩存,達到有效減小帶寬流量,降低服務器壓力的目的。
以Nginx服務器為例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #過期時間為30天, #圖片文件不怎么更新,過期可以設大一點, #如果頻繁更新,則可以設置得小一點。 expires 30d; } location ~ .*\.(js|css)$ { expires 10d; }
實例:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /data/web;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location ~ .*/.(css|js|swf|php|htm|html)$ {
add_header Cache-Control 'no-store';
add_header Pragma no-cache;
}
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}