龙空技术网

配置NGINX静态资源缓存来提升网站加载速度?

从程序员到架构师 310

前言:

现在朋友们对“nginx设置不缓存文件”大约比较看重,我们都想要学习一些“nginx设置不缓存文件”的相关文章。那么小编同时在网摘上汇集了一些对于“nginx设置不缓存文件””的相关内容,希望看官们能喜欢,同学们一起来学习一下吧!

NGINX静态资源缓存操作是一种在NGINX服务器上对静态资源文件如图片、CSS、JavaScript 等文件进行缓存的操作,通过NGINX静态资源的缓存操作,来提高网站性能,加快页面加载速度。将静态资源缓存在NGINX服务器上,可以减少对后端服务器的请求,降低服务器负载,并加快客户端访问网站的速度。

如何配置?

创建缓存路径

在NGINX配置中,首先需要指定一个缓存的路径,用来对静态文件进行缓存,可以通过proxy_cache_path命令来进行定义,如下所示。

# 定义缓存路径和缓存名称proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

配置缓存规则

针对需要缓存的静态资源,设置缓存规则。通常情况下,会在location块中设置缓存规则,如下所示。

# 静态资源缓存配置location /static {    # 设置缓存名称和缓存路径    proxy_cache my_cache;    # 缓存过期时间    proxy_cache_valid 200 302 60m;    proxy_cache_valid 404 1m;    # 开启缓存锁定,防止并发请求穿透缓存    proxy_cache_lock on;    # 设置缓存键值    proxy_cache_key $host$uri$is_args$args;    # 设置缓存条件    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;    # 缓存路径    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;    ...}
proxy_cache_valid:设置不同HTTP状态码的缓存过期时间。例如,上述配置中,对于 200和302状态码的响应,缓存有效期为60分钟,对于404状态码的响应,缓存有效期为1分钟。proxy_cache_lock:开启缓存锁定功能,防止并发请求穿透缓存。当一个请求正在更新缓存时,其他请求会被挂起,直到缓存更新完成。proxy_cache_key:设置缓存键值,通常使用 $host$uri$is_args$args,表示基于主机名、URI 和查询参数生成缓存键值。proxy_cache_path:设置缓存路径和缓存大小,可以设置缓存的存储路径、最大大小、最长存储时间等参数。proxy_cache_use_stale:配置缓存条件,当后端服务器响应异常时(如错误、超时等),可以允许NGINX使用过期的缓存响应。完整的NGINX配置

下面给出一个完整的NGINX配置实现。

# 定义缓存路径和缓存名称proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;# 定义 HTTP 服务http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    server {        listen       80;        server_name  localhost;        location / {            root   /usr/share/nginx/html;            index  index.html index.htm;        }        # 配置静态资源缓存        location /static {            proxy_cache my_cache;            proxy_cache_valid 200 302 60m;            proxy_cache_valid 404 1m;            proxy_cache_key $host$uri$is_args$args;            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;            proxy_ignore_headers Cache-Control Expires;            add_header X-Cache-Status $upstream_cache_status;            expires 1h;        }    }}

配置文件介绍

使用proxy_cache_path指令定义了一个名为my_cache的缓存区域,将缓存存储在/var/cache/nginx目录中,最大大小为10GB,60分钟内没有被访问的缓存文件会被认为是不活跃的,临时路径使用禁用。配置了一个HTTP服务,在server块中定义了监听端口为80,并设置了默认的文件类型和超时时间。location / 块定义了网站根目录和默认首页。location /static 块定义了静态资源缓存的配置,将/static目录下的静态资源缓存到my_cache缓存区域中,对于状态码为200和302的响应,缓存有效期为60分钟,对于状态码为404的响应,缓存有效期为1分钟。同时设置了缓存键值、缓存条件、缓存状态标头、缓存过期时间等参数。最后,使用expires指令设置了静态资源的浏览器缓存时间为1小时。

标签: #nginx设置不缓存文件