温馨提示×

Nginx缓存如何配置

小樊
49
2025-10-16 20:32:31
栏目: 编程语言

在Nginx中配置缓存可以显著提高网站的性能和响应速度。以下是一个基本的Nginx缓存配置示例,假设你已经安装了Nginx并且有一个基本的HTTP服务器设置。

1. 安装Nginx和相关模块

确保你已经安装了Nginx,并且启用了必要的模块,如ngx_http_cache_module

2. 配置缓存目录

首先,你需要指定一个目录来存储缓存文件。通常,这个目录位于/var/cache/nginx

sudo mkdir -p /var/cache/nginx
sudo chown -R www-data:www-data /var/cache/nginx

3. 配置Nginx

编辑你的Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加或修改以下内容:

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 / {
            # 启用缓存
            proxy_cache my_cache;
            proxy_pass http://backend_server;  # 替换为你的后端服务器地址
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            add_header X-Proxy-Cache $upstream_cache_status;
        }

        # 缓存静态文件
        location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 30d;
            add_header Cache-Control "public";
        }
    }
}

解释配置项

  • proxy_cache_path: 定义缓存路径和相关参数。

    • levels=1:2: 缓存目录的层级结构。
    • keys_zone=my_cache:10m: 缓存区域的名称和大小。
    • max_size=1g: 缓存的最大大小。
    • inactive=60m: 缓存项在不活跃60分钟后被清除。
    • use_temp_path=off: 不使用临时路径。
  • proxy_cache: 启用缓存并指定缓存区域。

  • proxy_pass: 指定后端服务器地址。

  • proxy_cache_valid: 设置缓存的有效期。

  • add_header X-Proxy-Cache $upstream_cache_status: 添加一个HTTP头,显示缓存状态。

  • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$: 匹配静态文件并设置缓存控制头。

4. 重启Nginx

保存配置文件并重启Nginx以应用更改:

sudo systemctl restart nginx

5. 验证缓存

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

curl -I http://example.com

如果缓存生效,你应该会看到类似以下的输出:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Thu, 01 Jan 2023 00:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1256
Connection: keep-alive
Cache-Control: public, max-age=600
X-Proxy-Cache: HIT

X-Proxy-Cache: HIT表示请求被缓存命中。

通过以上步骤,你应该能够在Nginx中成功配置缓存。根据你的具体需求,你可以进一步调整缓存参数和策略。

0