在 Nginx 中,您可以通过设置 expires
指令来指定静态文件的过期时间。以下是一些基本的配置示例,帮助您设置不同类型资源的过期时间。
基本设置
- 全局设置(在 http 块中):
您可以在 Nginx 的主配置文件(通常是
/etc/nginx/nginx.conf
)中,在http
块内设置默认的过期时间:
http {
...
expires 30d; # 设置所有资源的默认过期时间为30天
...
}
- 特定位置设置(在 server 或 location 块中): 您还可以针对特定路径或文件类型进行更细致的配置:
server {
listen 80;
server_name example.com;
location / {
root /path/to/your/site;
index index.html;
expires 7d; # 默认所有资源过期时间为7天
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d; # 针对图片、CSS和JavaScript文件,设置30天的过期时间
add_header Cache-Control "public, max-age=2592000"; # 可选:添加Cache-Control头部信息
}
location ~* \.(html)$ {
expires -1; # 不缓存HTML文件(即不建议缓存)
add_header Cache-Control "no-cache";
}
}
时间单位
s
:秒 (seconds)m
:分钟 (minutes)h
:小时 (hours)d
:天 (days)M
:月份 (months) - 注意并非精确值,通常按30天计算y
:年 (years)
添加 Cache-Control 响应头
为了增强浏览器缓存控制,可以结合使用 add_header
指令。例如:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}
重启 Nginx
修改完配置后,记得验证配置是否正确并重启 Nginx:
sudo nginx -t # 检查配置是否正确
sudo systemctl restart nginx # 重启Nginx服务
通过以上方式,您就可以有效地管理资源的过期时间,从而优化网站性能和用户体验。
内容由零声教学AI助手提供,问题来源于学员提问