linux

Nginx如何配置缓存

小樊
41
2025-06-27 20:50:27
栏目: 编程语言

在Nginx中配置缓存可以通过使用proxy_cache模块来实现。以下是一个基本的配置示例,展示了如何在Nginx中设置缓存:

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

    sudo apt update
    sudo apt install nginx
    
  2. 编辑Nginx配置文件: 通常,Nginx的主配置文件位于/etc/nginx/nginx.conf,但你也可以在/etc/nginx/conf.d//etc/nginx/sites-available/目录下创建新的配置文件。

    sudo nano /etc/nginx/sites-available/default
    
  3. 配置缓存: 在配置文件中添加以下内容来设置缓存:

    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;
    
                # 缓存方法
                proxy_cache_methods GET HEAD;
    
                # 缓存头信息
                add_header X-Proxy-Cache $upstream_cache_status;
    
                # 缓存键
                proxy_cache_key "$scheme$request_method$host$request_uri";
    
                # 缓存控制
                proxy_cache_bypass $http_pragma;
                proxy_cache_revalidate on;
                proxy_cache_lock on;
    
                # 缓存过期时间
                proxy_cache_valid any 1h;
            }
        }
    }
    

    解释:

    • proxy_cache_path:定义缓存路径、级别、键、最大大小、非活动时间和临时路径。
    • proxy_cache:启用缓存并指定缓存区域。
    • proxy_cache_valid:设置不同HTTP状态码的缓存时间。
    • proxy_cache_methods:指定哪些HTTP方法可以被缓存。
    • add_header:添加缓存状态头信息。
    • proxy_cache_key:定义缓存键。
    • proxy_cache_bypass:绕过缓存的条件。
    • proxy_cache_revalidate:启用缓存重新验证。
    • proxy_cache_lock:启用缓存锁定。
    • proxy_cache_valid any 1h:设置所有响应的缓存时间为1小时。
  4. 测试配置: 在保存并退出编辑器后,测试Nginx配置是否正确:

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

    sudo systemctl reload nginx
    

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

0
看了该问题的人还看了