Nginx负载均衡静态资源缓存配置指南

引言

Nginx 是一款高性能的 HTTP 服务器和反向代理,广泛用于提供负载均衡服务。在处理静态资源时,合理配置 Nginx 的缓存机制可以显著提高应用性能和响应速度。本文将详细介绍如何在 Nginx 负载均衡中配置静态资源的缓存。

静态资源缓存的重要性

静态资源,如图片、CSS、JavaScript 文件等,通常不会频繁更改。通过缓存这些资源,可以减少服务器的负载,降低响应时间,提高用户体验。

Nginx 缓存机制概述

Nginx 提供了两种缓存机制:

  1. HTTP 缓存:基于 HTTP 头部,如 Cache-ControlExpires
  2. 代理缓存:Nginx 代理缓存,存储在服务器本地。

配置HTTP缓存

HTTP 缓存通过设置响应头来控制客户端和代理服务器的缓存行为。

location ~* \.(html|css|js|jpg|jpeg|png|gif)$ {# 设置资源的缓存时间为30天add_header Cache-Control "public, max-age=2592000";# 设置资源的过期时间add_header Expires $date_expires;
}

配置Nginx代理缓存

Nginx 的代理缓存需要在配置文件中定义缓存的路径、大小和有效期。

1. 定义缓存路径和大小

http 块中定义缓存的路径和大小。

http {open_file_cache max=1000 inactive=20s;open_file_cache_valid 30s;open_file_cache_min_uses 1;open_file_cache_errors on;proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;proxy_cache my_cache;
}

2. 应用缓存策略

serverlocation 块中应用缓存策略。

server {listen 80;location ~* \.(html|css|js|jpg|jpeg|png|gif)$ {proxy_pass http://backend;proxy_cache_valid 200 302 10m;proxy_cache_valid 404 1m;proxy_cache my_cache;proxy_cache_key $uri$is_args$args;proxy_cache_use_stale updating;}
}

3. 缓存验证和更新

使用 proxy_cache_use_stale 指令在后端服务器更新资源时提供备用的缓存内容。

proxy_cache_use_stale error timeout updating http_500 http_503;

4. 缓存管理

Nginx 还提供了管理缓存的工具,如 purging(清除缓存)。

location ~ /cache/purge(/.*) {allow 127.0.0.1;deny all;proxy_cache_purge my_cache $1;
}

高级缓存配置

1. Vary 响应头

根据请求的某些头部字段来缓存不同版本的资源。

proxy_cache_valid 200 302 10m;
proxy_cache Vary;

2. 连接和响应缓冲

优化连接和响应的缓冲设置。

proxy_buffers 8 4k;
proxy_buffer_size 8k;
proxy_busy_buffers_size 16k;

3. SSL 缓存

如果使用 SSL,配置 SSL 会话缓存。

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

缓存的最佳实践

  1. 合理设置缓存时间:根据资源更新频率设置合适的缓存时间。
  2. 监控缓存命中率:定期检查缓存命中率,评估缓存策略的有效性。
  3. 使用 CDN:利用 CDN 缓存静态资源,减轻服务器压力。
  4. 缓存预热:部署新版本时,预先加载缓存,避免缓存穿透。
  5. 安全性:确保缓存内容的安全性,避免敏感信息泄露。

结论

在 Nginx 负载均衡中配置静态资源的缓存可以显著提升 Web 应用的性能。通过本文的详细介绍,你应该能够理解 Nginx 缓存机制的工作原理和配置方法。合理利用 Nginx 的缓存功能,不仅可以减轻服务器的负担,还可以提供更快的响应速度和更好的用户体验。随着 Web 应用的不断扩展,持续优化缓存策略是确保应用性能的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【业务】4A

目录 账号管理(Account Management)认证管理(Authentication Management)授权管理(Authorization Management)审计管理(Audit Management) 账号管理(Account Management&…

zsh 的补全系统

在 Zsh 中,自动提醒(自动补全)功能通常由 zsh 的补全系统(zsh-completions)和 zsh-autosuggestions 等插件提供。如果你的 Zsh 不再自动提醒了,可以通过以下步骤来检查和启用这些功能。 1. 确保补全系统已…

C/C++趣味编程

文章目录 热门文章每日十练1. 计算圆的面积2. 计算两个整数的最大公约数(GCD)3. 检查一个数是否为回文数4. 输出斐波那契数列5. 检查一个数是否为质数(素数)6. 将摄氏温度转换为华氏温度7. 使用递归计算阶乘8. 计算两个数的LCM&am…

vulhub xxe靶机

先用御剑扫描出ip然后进入网页 进入robots.txt里面会发现俩个目录然后我们进去xxe里面 进入xxe页面进行登录&#xff0c;burp抓包 然后进入重放器 可以看到关于密码和用户名的是xml,那么就可以考虑用xxe注入 <?xml version"1.0" ?> <!DOCTYPE r [ <!…

监视SQL Server 内存使用量

文章目录 I 监视SQL Server 内存使用量确定页生存期确定当前的 SQL Server 内存利用率有关当前分配内存的信息II 等待资源池 %ls (%ld)中的内存资源来执行该查询时发生超时。 请重新运行查询。原因查看服务器级别设置的超时值资源信号灯 DMV sys.dm_exec_query_resource_semaph…

IP网络广播系统(IP网络广播系统是什么及它的优势与应用)

一、引言 在当今数字化的时代&#xff0c;音频传播技术也在不断革新。IP网络广播系统作为一种先进的音频传输解决方案&#xff0c;正逐渐在各个领域发挥重要作用。那么&#xff0c;究竟什么是IP网络广播系统呢&#xff1f;它又有着怎样独特的优势和广泛的应用呢&#xff1f;本…

《ARM Cortex-R 学习指南》-【第十二章】-Fault Detection and Control Features

快速链接: . 👉👉👉 ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 付费专栏-付费课程 【购买须知】个人博客笔记导读目录(全部) 第十二章 故障检测与控制特性 Fault Detection and Control Features 在硅芯片设备中,杂散辐射和其他效应可能导致存储在RAM中的数据损…

破圈之路——写在创作纪念日

缘起 高中时读《明朝那些事儿》,作者当年明月引用一句话作为整个系列的开始和结尾,这句话是:“选择了这条路,就再也不能回头”。 十年前,还在备战高考的我从没想过我会成为一名程序员,正如二十年前的那个小学生第一次作文获奖时也从没想过十年后的他会选择理科一样。改变…

设计模式—2—单例模式

文章目录 一、单例模式概述二、单例模式特点三、示例3.1、基本实现&#xff08;懒汉式-线程不安全&#xff09;3.2、基本实现&#xff08;懒汉式-线程安全&#xff09;3.3、基本实现&#xff08;饿汉式&#xff09; 四、总结 一、单例模式概述 单例模式&#xff08;Singleton …

深度学习(二)-损失函数+梯度下降

损失函数 损失函数&#xff08;Loss Function&#xff09;&#xff0c;也有称之为代价函数&#xff08;Cost Function&#xff09;&#xff0c;用来度量预测值和实际值之间的差异。 损失函数的作用 度量决策函数f&#xff08;x&#xff09;和实际值之间的差异。 作为模型性能…

检测CSRF漏洞的工具

免责声明此文档仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担&…

二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)

一、目的 由于部分数据类型频率为1s&#xff0c;从而数据规模特别大&#xff0c;因此完整的JSON放在Hive中解析起来&#xff0c;尤其是在单机环境下&#xff0c;效率特别慢&#xff0c;无法满足业务需求。 而Flume的拦截器并不能很好的转换数据&#xff0c;因为只能采用Java方…

javascript数据结构与算法-- 二叉树

javascript数据结构与算法-- 二叉树 树是计算机科学中经常用到的一种数据结构。树是一种非线性的数据结构&#xff0c;以分成的方式存储数据&#xff0c;树被用来存储具有层级关系的数据&#xff0c;比如文件系统的文件&#xff0c;树还被用来存储有序列表。我们要研究的是二叉…

IObit Uninstaller Pro v13.6.0.5 绿色便携免安装版本 下载

功能非常强大好用的软件卸载清理工具 下载地址(资源制作整理不易&#xff0c;下载使用需付费&#xff0c;不能接受请勿浪费时间下载) 链接&#xff1a;https://pan.baidu.com/s/1I7lbixooii9ezSrp3X-y-w?pwd716l 提取码&#xff1a;716l

d3dcompiler_47.dll缺失的可能原因多种多样,那么d3dcompiler_47.dll缺失怎么修复

在数字世界的深处&#xff0c;d3dcompiler_47.dll文件扮演着至关重要的角色&#xff0c;它是Direct3D编译器的一部分&#xff0c;负责处理图形渲染和游戏运行中的关键任务。然而&#xff0c;当用户启动某个程序或游戏时&#xff0c;屏幕上突然弹出的错误提示“d3dcompiler_47.d…

苹果手机勿扰模式怎么关闭?4个方法快速关闭!

我们为了提升做事的效率以及保障休息的质量&#xff0c;在认真工作和学习&#xff0c;或者是晚上休息的时候&#xff0c;通常会打开苹果手机的勿扰模式。但当我们需要恢复苹果手机的消息通知时&#xff0c;苹果手机勿扰模式怎么关闭呢&#xff1f;今天&#xff0c;小编整理了4个…

机械学习—零基础学习日志(概率论总笔记2)

正态分布 高斯分布也叫做正态分布。假定事件A经过n次试验后发生了k次&#xff0c;把k的概率分布图画一下&#xff0c;就得到了一个中间鼓起&#xff0c;像倒扣的钟一样的对称图形。 18世纪&#xff0c;数学家棣莫弗和拉普拉斯把这种中间大&#xff0c;两头小的分布称为正态分布…

厨师帽佩戴识别摄像机

厨师帽佩戴识别摄像机 是一种用于识别厨师是否佩戴帽子的智能设备&#xff0c;其作用在于强制执行食品安全卫生标准&#xff0c;防止头发掉落入食物中。该摄像机利用人工智能和图像识别技术&#xff0c;能够识别厨师是否佩戴厨师帽。当摄像机检测到厨师未佩戴帽子时&#xff0c…

微信小程序中Towxml解析Markdown及html

一、Towxml Towxml 是一个让小程序可以解析Markdown、HTML的解析库。 二、引入 2.1 clone代码 git clone https://github.com/sbfkcel/towxml.git2.2 安装依赖 npm install2.3 打包 npm run build2.4 引入文件 将dist文件复制到微信小程序根目录&#xff0c;改名为towx…

THE UNIVERSITY OF MANCHESTER-NUMERICAL ANALYSIS 2Final Exam2021

2. (a) Briey describe how orthogonal polynomials can be used to fi nd the nodes of Gaussian quadra-ture rules for a weighted integral ∫ a b f ( x ) w ( x ) d x . \int_{a}^bf(x)w(x)\mathrm{d}x. ∫ab​f(x)w(x)dx.(b) Using your described approach to find th…