在 Nginx 中设置静态资源的过期时间,可以使用 expires
指令。以下是一个简单的示例,展示如何在 Nginx 配置中为不同类型的文件设置过期时间:
server {
listen 80;
server_name example.com; # 替换为您的域名
location / {
root /var/www/html; # 替换为您的网站根目录
index index.html index.htm;
}
# 为图片文件设置过期时间
location ~* \.(jpg|jpeg|png|gif|ico)$ {
expires 30d; # 缓存30天
access_log off; # 可选:关闭访问日志以提高性能
}
# 为CSS和JavaScript文件设置过期时间
location ~* \.(css|js)$ {
expires 1w; # 缓存1周
access_log off;
}
# 为字体文件设置过期时间
location ~* \.(eot|ttf|woff|woff2)$ {
expires 1M; # 缓存1个月
access_log off;
}
# 为其他类型的文件设置短暂的缓存或不缓存(例如HTML)
location ~* \.(html)$ {
expires -1; # 不缓存,直接从服务器获取最新内容
access_log off;
}
}
配置说明:
server
: 定义了一个虚拟主机。listen
: 指定 Nginx 监听的端口。server_name
: 指定服务器名称,即域名。location
: 定义对特定请求路径的处理方式。root
: 设置网站根目录,用于查找请求的文件。expires
: 设置响应头中的Expires
和Cache-Control
,指示浏览器缓存资源的时间。- 示例中,为
.jpg
,.jpeg
,.png
,.gif
, 和.ico
文件设置了30天缓存; - CSS和JS文件被设置为缓存1周;
- 字体文件(如
.eot
,.ttf
,.woff
,.woff2
)被设置为缓存1个月; - HTML 文件被配置为不进行缓存。
- 示例中,为
重启 Nginx
完成配置后,不要忘记测试并重启 Nginx,以使更改生效:
sudo nginx -t # 测试配置是否有误
sudo systemctl restart nginx # 重启Nginx服务
通过以上配置,您可以有效管理静态资源的缓存策略,从而提高网站性能。
内容由零声教学AI助手提供,问题来源于学员提问