跳到主要内容

启动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 指令将请求代理到后端服务器。

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