Skip to content
nginx
http {
    # 缓存路径和配置
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;

    # 定义一个命名的缓存区域
    proxy_cache my_cache;

    server {
        listen 80;
        server_name your_domain.com;

        # 缓存控制指令
        proxy_cache_valid 200 304 10m; # 设置缓存时间
        proxy_cache_key $host$uri$is_args$args; # 设置缓存键

        location / {
            # 根据需要缓存的文件类型进行配置
            # 在此示例中,我们缓存了 CSS、JavaScript 和图片文件
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
            proxy_no_cache $http_pragma $http_authorization;

            # 其他缓存控制指令
            add_header X-Cache $upstream_cache_status;
            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_pass http://backend_server;
        }

        # 其他服务器配置...
    }

    # 其他 http 块配置...
}

在上面的配置中:

  • proxy_cache_path 指令用于定义缓存路径和相关配置,如缓存大小、缓存区块的数量等。
  • proxy_cache my_cache; 定义了一个名为 my_cache 的缓存区域。
  • proxy_cache_valid 指令用于设置缓存的有效时间。
  • proxy_cache_key 指令定义了用于缓存键的参数。
  • proxy_cache_use_stale 指令定义了在后端服务器不可用时是否使用过期的缓存。
  • proxy_cache_bypassproxy_no_cache 指令用于控制是否绕过缓存。
  • add_header 指令添加了一个自定义的头部,以便于调试时查看缓存状态。
  • proxy_set_header 指令设置了向后端服务器传递的一些 HTTP 头部信息。
  • proxy_pass 指令将请求代理到后端服务器。

这只是一个简单的示例配置。根据你的具体需求,你可能需要对缓存路径、缓存有效时间、缓存键、缓存的文件类型等进行进一步的定制和调整。