nginx端的性能优化¶
常见的开发人员控制的缓存分类:
- 数据库缓存
- 应用程序缓存
- nginx网关缓存
- 前端缓存
// 定义缓存区域
// /root/cache: 这是缓存数据存储的位置
// levels=1:2 定义了缓存文件的目录结构层次,这里设置为两层目录,第一层目录名为最后一个字符,第二层为倒数第三个和倒数第二个字符。
// keys_zone=xd_cache:10m 为共享内存区域命名(这里是 xd_cache),并指定其大小(10MB)。这个内存区用于存储缓存键和其他元数据。
// max_size=1g 设置缓存的最大磁盘空间为 1GB。当达到这个限制时,Nginx 的缓存清理机制将启动,移除最近最少使用的数据。
// inactive=60m 如果某个缓存条目在 60 分钟内没有被访问,它将从缓存中移除
// use_temp_path=off 直接在最终的缓存位置写入临时文件,而不是使用默认的临时存储路径,这可以避免额外的 I/O 开销。
proxy_cache_path /root/cache levels=1:2 keys_zone=xd_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_pass http://backend_servers; // 配置请求走backend_servers转发策略
# 设置转发头信息--存放用户的真实ip
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_set_header X-Forwarded-Proto $scheme;
proxy_intercept_errors on;
proxy_cache xd_cache; // 使用之前定义的缓存区域 xd_cache
proxy_cache_valid 200 304 10m; // 对 HTTP 200 和 304 状态码的响应缓存 10 分钟
proxy_cache_valid 404 1m; // 对 HTTP 404 状态码的响应缓存 1 分钟
proxy_cache_key $host$uri$is_args$args; // 定义缓存的键值,基于主机名、URI、是否带有参数以及参数本身
add_header_Nginx-Cache "$upstream_cache_status"; // 添加响应头,显示缓存状态(MISS, BYPASS, EXPIRED等)
}
}
静态资源压缩
在请求js,css,html等文件的时候,可以压缩请求文件的大小--减小带宽使用