MeteorCat / Nginx静态资源处理

Created Tue, 10 Oct 2023 20:17:20 +0800 Modified Wed, 29 Oct 2025 23:25:05 +0800
493 Words

Nginx静态资源处理

静态资源一般频繁做访问解析处理, 需要缓存处理下( 在 http 块中生成 ):

http{

    # 开启gzip
    gzip  on;

    # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
    gzip_min_length 1k;

    # gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间。一般设置1和2
    gzip_comp_level 2;

    # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png;

    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;

    # 禁用IE 6 gzip
    gzip_disable "MSIE [1-6]\.";

    # 设置缓存路径并且使用一块最大100M的共享内存,用于硬盘上的文件索引,包括文件名和请求次数,每个文件在1天内若不活跃(无请求)则从硬盘上淘汰,硬盘缓存最大10G,满了则根据LRU算法自动清除缓存。
    # 这里设置 static_cache 为缓冲区名称
    # 这里是设置代理转发的配置, 如果没有启动反向代理转发内网可以不设置
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=static_cache:100m inactive=1d max_size=10g;
}

调用其唤起缓存服务( 放置于 server 块当中 ):

location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
    # 关闭日志
    log_not_found off;
    access_log off;
    
    # 缓存天数
    expires 7d;
    
    # 指定上面设置的缓存区域
    proxy_cache static_cache;
    
    # 代理缓存过期管理
    # 这里是设置代理转发的配置, 如果没有启动反向代理转发内网可以不设置
    proxy_cache_valid 200 302 1d;
    proxy_cache_valid 404 10m;
    proxy_cache_valid any 1h;
    proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
}