点赞
评论
收藏
分享
举报
Nginx 最常用的两个功能:负载均衡和缓存
发表于2021-03-24 09:43

浏览 1.2k

负载均衡和缓存功能是 Nginx 最常用的两个功能,这两个功能都属于高性能的调优手段,也和后端人员的关系比较密切,只有了解并会使用它们才能更好地调试和运行自己的项目。针对Nginx 负载均衡模式先前有整理过:Nginx 的负载均衡模式有哪些?它的实现原理是什么?。本篇主要围绕负载均衡和缓存功能和配置做归纳总结

Nginx 健康监测

被代理的服务器出现宕机的情况,如果被 Nginx 发现,那么 Nginx 就会将其自动标识为不可用,并且在一段时间内会禁止入站的请求访问到该服务器上。

而这个发现服务器宕机的过程就是健康检测的功能了。Nginx 的健康检测分为两种类型,主动检测和被动检测,默认的非商用 Nginx 采用的是被动检测。

所谓的被动检测是指只有访问了该服务器之后发现服务器不可用了,才会将其标识为不可用,并且在一定时间内禁止请求分发到该服务器上,而不是主动以一定的频率去检查服务器是否可用。

健康检测有两个重要参数 max_fails 和 fail_timeout。

fail_timeout 定义了健康检查的执行时长,而 max_fails 表示服务不可用的最大尝试次数,当一定时间内(此时间由 fail_timeout 定义),发生了一定次数的服务器不响应的事件(此次数由 max_fails 定义),那么 Nginx 就会将该服务器标识为不可用的服务器,并且在一定时间内禁止请求分发到该服务器。默认情况下 max_fails 设置为 1,当它设置为 0 时表示禁用此服务器的运行状况检查,它的配置示例如下:

当服务器被标识为不可用时,只有达到了 fail_timeout 定义的时间后,才会进行再一次的健康请求检测。

主动健康检测的实现方案有两种,一种是使用商用的 Nginx Plus 来配置主动健康检测,另一种是使用开源的第三方模块 nginx_upstream_check_module 来实现主动健康检测。

Nginx Plus 和 nginx_upstream_check_module 模块的主动健康检查配置大体都是一样的,它的配置示例如下:

其中,check_http_send 表示发送请求的内容,而 check_http_expect_alive 是服务器正常情况下的响应状态码,如果后端服务器的响应状态包含在此配置中,则说明是健康的状态。

Nginx 缓存

我们可以开启 Nginx 的静态资源缓存,将一些不变的静态文件,比如图片、CSS、JS 等文件进行缓存,这样在客户端访问这些资源时就不用去访问服务器了,因此响应的速度就可以大幅提升,并且节省了宝贵的服务器资源。

Nginx 开启缓存需要在 http 节点中配置 proxy_cache_path 信息,以及 server 节点中配置要缓存资源的后缀名,它的配置示例如下:

其中,proxy_cache_path 配置的是缓存的目录信息,以及缓存的保存时间 inactive,还有缓存的大小等信息;而“access_log off”表示关闭日志功能,proxy_pass 表示当第一次没有缓存时的请求地址,之后便会将访问到的资源缓存起来。

已修改于2023-03-08 03:58
创作不易,留下一份鼓励
阿尔巴

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
阿尔巴
这家伙很懒还未留下介绍~
12
文章
10
问答
11
粉丝
相关文章
转载:https://linux.cn/article-5970-1.html作者: KYoung译者: LCTT struggling如果你已经阅读了前面的 如何监控NGINX,你应该知道从你网络环境的几个指标中可以获取多少信息。而且你也看到了从NGINX特定的基础中收集指标是多么容易的。但要实现全面,持续的监控NGINX,你需要一个强大的监控系统来存储并将指标可视化,当异常发生时能提醒你。在这篇文章中,我们将向你展示如何使用Datadog安装NGINX监控,以便你可以在定制的仪表盘中查看这些指标:NGINXdashboardDatadog允许你以单个主机、服务、流程和度量来构建图形和警告,或者使用它们的几乎任何组合构建。例如,你可以监控你的所有主机,或者某个特定可用区域的所有NGINX主机,或者您可以监视具有特定标签的所有主机的一个关键指标。本文将告诉您如何:在Datadog仪表盘上监控NGINX指标,就像监控其他系统一样当一个关键指标急剧变化时设置自动警报来通知你配置NGINX为了收集NGINX指标,首先需要确保NGINX已启用statu
点赞 4
浏览 914
nginx_concurrent_limit_module:Thisisathirdpartmodulefornginx.Itmakenginxupstreamcanlimitconcurrent-levelforperbackendserver.It'sonlysupportroundrobinmodefornow.Thisisapatchfornginx-1.9.9.#config:Setconcurrentinconfigurefile.concurrent=2  meansthebackendservercanreceive2requestinsametime.concurrent  meansthecountofrequestinthesametime,notqps.Ifallbackendreachconcurrent-limited,nginxwillgivea502errortousers.upst
点赞 0
浏览 1.1k
硬负载均衡和软负载均衡是两种不同的负载均衡技术,用于在计算机网络或服务器集群中分配和管理传入的网络流量,以确保系统资源的高效利用和服务的稳定性。
点赞 0
浏览 523