温馨提示×

centos nginx如何缓存静态资源

小樊
39
2025-11-09 23:07:52
栏目: 智能运维

在CentOS上使用Nginx缓存静态资源可以显著提高网站性能。以下是详细的步骤和配置示例,帮助你设置Nginx缓存静态资源。

1. 安装Nginx

如果你还没有安装Nginx,可以使用以下命令进行安装:

sudo yum install epel-release
sudo yum install nginx

2. 启动Nginx

安装完成后,启动Nginx服务并设置开机自启动:

sudo systemctl start nginx
sudo systemctl enable nginx

3. 配置Nginx缓存

编辑Nginx配置文件,通常位于 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf。你可以创建一个新的配置文件或修改现有的配置文件。

以下是一个示例配置,展示了如何缓存静态资源:

http {
    # 缓存路径和大小
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html index.htm;

            # 缓存静态资源
            location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
                expires 30d;
                add_header Cache-Control "public";
                proxy_cache my_cache;
                proxy_cache_valid 200 302 10m;
                proxy_cache_valid 404 1m;
                proxy_pass http://backend_server;
            }
        }
    }
}

解释配置项

  • proxy_cache_path: 定义缓存路径、级别、键值区域、最大大小、非活动时间和是否使用临时路径。

    • /var/cache/nginx: 缓存文件的存储路径。
    • levels=1:2: 缓存目录的层级结构。
    • keys_zone=my_cache:10m: 缓存区域的名称和大小。
    • max_size=1g: 缓存的最大总大小。
    • inactive=60m: 文件在缓存中保持活动状态的最长时间。
    • use_temp_path=off: 是否使用临时路径。
  • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$: 匹配静态资源的正则表达式。

    • expires 30d: 设置缓存过期时间为30天。
    • add_header Cache-Control "public": 添加缓存控制头。
    • proxy_cache my_cache: 使用之前定义的缓存区域。
    • proxy_cache_valid 200 302 10m: 设置200和302状态码的缓存时间为10分钟。
    • proxy_cache_valid 404 1m: 设置404状态码的缓存时间为1分钟。
    • proxy_pass http://backend_server: 将请求转发到后端服务器。

4. 测试配置并重启Nginx

在保存配置文件后,测试Nginx配置是否正确:

sudo nginx -t

如果没有错误,重启Nginx以应用新的配置:

sudo systemctl restart nginx

5. 验证缓存

你可以通过访问你的网站并检查响应头中的 Cache-ControlExpires 字段来验证缓存是否生效。

通过以上步骤,你应该能够在CentOS上成功配置Nginx缓存静态资源。

0