温馨提示×

Nginx反向代理缓存怎么配置

小樊
70
2025-09-07 03:26:24
栏目: 编程语言

在Nginx中配置反向代理缓存可以帮助你提高网站的性能和减轻后端服务器的负载。以下是一个基本的配置示例,展示了如何设置Nginx作为反向代理并启用缓存。

  1. 安装Nginx(如果尚未安装):

    sudo apt update
    sudo apt install nginx
    
  2. 编辑Nginx配置文件: 通常,Nginx的主配置文件位于 /etc/nginx/nginx.conf,但你可以为特定的虚拟主机创建一个单独的配置文件,例如 /etc/nginx/sites-available/yourdomain.com

  3. 配置反向代理和缓存: 在你的虚拟主机配置文件中添加以下内容:

    server {
        listen 80;
        server_name yourdomain.com;
    
        # 缓存路径和参数
        proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    
        location / {
            # 反向代理设置
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            # 缓存设置
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            add_header X-Proxy-Cache $upstream_cache_status;
        }
    }
    

    解释:

    • proxy_cache_path:定义缓存路径和相关参数。
      • levels=1:2:缓存目录的层级结构。
      • keys_zone=my_cache:10m:定义缓存区域的名称和大小。
      • max_size=1g:缓存的最大总大小。
      • inactive=60m:缓存项在未被访问后多久失效。
      • use_temp_path=off:禁用临时文件路径。
    • proxy_pass:指定后端服务器的地址。
    • proxy_set_header:设置传递给后端服务器的HTTP头。
    • proxy_cache:启用缓存并指定缓存区域。
    • proxy_cache_valid:定义不同HTTP状态码的缓存时间。
    • add_header X-Proxy-Cache $upstream_cache_status:添加一个自定义头,显示缓存状态。
  4. 测试配置: 在保存配置文件后,运行以下命令测试Nginx配置是否正确:

    sudo nginx -t
    
  5. 重新加载Nginx: 如果配置测试通过,重新加载Nginx以应用更改:

    sudo systemctl reload nginx
    

现在,Nginx将作为反向代理并使用配置的缓存路径和参数来缓存后端服务器的响应。你可以根据需要调整缓存参数以优化性能。

0