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_bypass
和proxy_no_cache
指令用于控制是否绕过缓存。add_header
指令添加了一个自定义的头部,以便于调试时查看缓存状态。proxy_set_header
指令设置了向后端服务器传递的一些 HTTP 头部信息。proxy_pass
指令将请求代理到后端服务器。
这只是一个简单的示例配置。根据你的具体需求,你可能需要对缓存路径、缓存有效时间、缓存键、缓存的文件类型等进行进一步的定制和调整。