nginx 统计请求次数_Nginx 最常用的两个功能:负载均衡和缓存

本文介绍了Nginx的健康监测机制,包括fail_timeout的原理和两种主动健康检查方案:Nginx Plus与nginx_upstream_check_module。同时,讲解了Nginx如何开启静态资源缓存以提升响应速度并节省服务器资源,详细配置了proxy_cache_path及proxy_pass等相关设置。
摘要由CSDN通过智能技术生成
负载均衡和缓存功能是 Nginx 最常用的两个功能,这两个功能都属于高性能的调优手段,也和后端人员的关系比较密切,只有了解并会使用它们才能更好地调试和运行自己的项目。针对Nginx 负载均衡模式先前有整理过:Nginx 的负载均衡模式有哪些?它的实现原理是什么?。本篇主要围绕负载均衡和缓存功能和配置做归纳总结

01

Nginx 健康监测

被 代理的服务器出现宕机的情况,如果被 Nginx 发现,那么 Nginx 就会将其自动标识为不可用,并且在一段时间内会禁止入站的请求访问到该服务器上。 而这个发现服务器宕机的过程就是健康检测的功能了。Nginx 的健康检测分为两种类型, 主动检测和被动检测 ,默认的非商用 Nginx 采用的是被动检测。 所谓的 被动检测 是指只有访问了该服务器之后发现服务器不可用了,才会将其标识为不可用,并且在一定时间内禁止请求分发到该服务器上,而不是主动以一定的频率去检查服务器是否可用。 健康检测有两个重要参数 max_fails 和 fail_timeout。 fail_timeout 定义了健康检查的执行时长,而 max_fails 表示服务不可用的最大尝试次数,当一定时间内(此时间由 fail_timeout 定义),发生了一定次数的服务器不响应的事件(此次数由 max_fails 定义),那么 Nginx 就会将该服务器标识为不可用的服务器,并且在一定时间内禁止请求分发到该服务器。默认情况下 max_fails 设置为 1,当它设置为 0 时表示禁用此服务器的运行状况检查,它的配置示例如下: 1e6a8d5b3dcc8ab017cfe0e9c2651698.png 以上配置表示,如果 10s 内发生了两次服务不可用的情况就会将该服务器标识为不可用的状态。

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

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

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

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

02

Nginx 缓存

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

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

056d1d500410d413e90d6720e17eca1d.png

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

- END -

往期推荐

没有源码调试!生产环境如何排除和优化 JVM?

Nginx 的负载均衡模式有哪些?它的实现原理是什么?

生产者与消费者模式,数组阻塞队列(ArrayBlockingQueue)

为什么建议没事不要随便用工厂模式创建对象?

你知道吗?du 和 df 的统计结果为什么不一样?

93a8176a4bbe07f5c40b113512d3ecfa.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值