Nginx缓存怎样配置

作者:袖梨 2026-06-29

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

Nginx缓存如何配置

1. 安装Nginx和相关模块

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

2. 配置缓存目录

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

sudo mkdir -p /var/cache/nginxsudo 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 OKServer: nginx/1.18.0 (Ubuntu)Date: Thu, 01 Jan 2023 00:00:00 GMTContent-Type: text/html; charset=UTF-8Content-Length: 1256Connection: keep-aliveCache-Control: public, max-age=600X-Proxy-Cache: HIT

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

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

相关文章

精彩推荐