负载均衡服务器可以避免一台服务器过载而其他服务器过闲,从而极大提升性能 。同时,有了它还可以让Web服务器扩容更简单,因为可以选用比较便宜的服务器,同时保证物尽其用 。
可以通过负载均衡调度的协议包括HTTP、HTTPS、SPDY、HTTP/2、WebSocket、FastCGI、SCGI、uwsgi、memcached,以及其他一些应用形式,包括基于TCP的应用和其他第四层的协议 。为此,首先要分析Web应用,看性能短板在哪里,然后再确定使用哪一个 。
同一台服务器或用于负载均衡的服务器也可以承担其他任务,比如SSL终止、视客户端不同支持HTTP/1/x或HTTP/2、缓存静态文件 。
NGINX经常被用来做负载均衡,更多信息请参考我们以前发的介绍性文章、有关配置的文章、电子书和相关的在线视频,当然还有文档 。我们的商业版本NGINX Plus支持更多的负载均衡功能,如基于服务器响应时间路由负载和支持微软NTLM协议的负载均衡 。
建议三:缓存静态及动态内容
缓存能提升Web应用性能,因为可以更快地把内容交付给客户端 。缓存的策略包括预处理内容、在较快的设备上存储内容、把内容保存在靠近客户端的地方,以及同时运用这些策略 。
缓存有两种 。
- 静态内容缓存,不常变化的文件,如图片(JPEG、PNG)和代码(css、JavaScript),可以保存在边缘服务器中,以便快速从内容或磁盘中获取 。
- 动态内容缓存,很多Web应用会为每个页面请求生成全新的html,把生成的每个HTML都缓存一小段时间,可能显著减少需要生成的页面总数,同时又可以保证交付的内容足够新鲜 。
缓存Web应用生成内容的技术主要分三种 。
- 把内容放到离用户近的地方 。离用户近,传输时间少 。
- 把内容放到较快的机器上 。机器快,检索速度快 。
- 把内容从过度使用的机器中拿走 。有时候机器会比在专注执行特定任务时慢很多,那是因为太多任务让它们分心 。这时候把内容拿到其他机器上,不仅对缓存的内容有好处,对非缓存的内容同样有利,因为托管它们的主机的负担减轻了 。
用好缓存能显著加快应用的响应速度 。对很多网页来说,大图片之类的静态数据,往往占据一半以上的内容 。不用缓存,查询和传输这类数据可能会花好几秒钟,而用缓存,则可能只要花几分之一秒 。
可以举一个例子来说明怎么使用缓存,NGINX和NGINX Plus通过两个指令来设置缓存:proxy_cache_path和proxy_cache指定缓存的位置和大小、最长缓存时间以及其他参数 。使用第三个(也是很受欢迎的)指令proxy_cache_use_stale,甚至可以告诉缓存在本来应该提供新鲜内容的服务器太忙或宕机时,提供原来的旧文件,对客户端来说,拿到内容总比拿不到强 。从用户角度看,这样也可以树立你的站点或应用非常稳定的形象 。
NGINX Plus支持高级缓存功能,包括缓存净化(caching purging)和通过控制板以可视化的形式展示缓存状态,实现实时监控 。
要了解NGINX中关于缓存的更多信息,可以看看参考文档和NGINX Plus Admin Guide中的NGINX Content Caching 。另外,关注微信公众号:Java技术栈,也可以获取我整理的 NGINX 教程,都是干货 。
注意: 缓存涉及开发、决策和运维,完善的缓存策略,比如本文提到的这些,能够体现从DevOps角度考虑的价值 。也说是说,开发人员、架构师、运维人员此时携手,共同保障一个网站的功能、响应时间、安全和业务目标 。建议四:压缩数据
文章插图
压缩同样能极大提升性能 。图片、视频、音乐等文件都有非常成熟和高效的压缩标准(JPEG和PNG、MPEG-4、MP3),任何一个标准都可以把文件大小缩小一个数量级甚至更多 。
文本文件,包括HTML(纯文本和HTML标签)、CSS和JavaScript代码,经常在不压缩的情况下传输 。压缩这些数据对提升Web应用的感知性能有时候特别明显,尤其是移动用户的网络很慢又不稳定的情况下 。
推荐阅读
- Win10系统中进入BIOS的详细操作方法
- 提高店铺转化率有哪些技巧 提升店铺转化率的方法
- 淘宝关键词优化技巧教程 淘宝如何提升关键词排名
- 如何提高淘宝店铺的流量和权重 淘宝店铺自然流量怎么提升
- 茶叶城市之厦门,茶叶可追溯依托厦门食品安全监管系统
- Windows操作系统|Win11安卓子系统轻松安装Play商店?小心中木马
- 使用Shell函数实现多级菜单系统安装
- CentOS7下部署开放式漏洞评估系统OpenVAS
- AMD|AMD Yes!RX 6X50 XT系列显卡不会大涨价:性能提升10%
- 淘宝店铺信誉等级对店铺的影响 淘宝店铺信誉度怎么提升的