本文目录导航:
Nginx负载平衡性能、限流性能、Https性能详解
Nginx负载平衡、限流性能、Https详解Nginx经过负载平衡模块实事实时转发,upstream是关键,允许轮询、权重、ip_hash和url_hash等算法。
例如,轮询可以按顺序在多个后端服务(如9001-9003)间转发,权重战略则让某些服务更优先解决。
ip_hash确保同一IP固定访问一个Server,适宜解决Session疑问,但或者造成压力不均;url_hash则经过url哈希调配恳求,防止空间糜费。
限流性能关键为包全运行,罕用的是基于令牌桶或漏桶算法的速率限度。
ngx_http_limit_req_module用于限度单位期间内恳求数,例如,设置每秒2个恳求,超出则拒绝。
测试时,经过JMeter等工具模拟并发恳求,观察限流成果。
HTTPS性能触及生成证书和经常使用ngx_http_rewrite_module启动跳转。
生成SSL证书后,可在Nginx中为8000端口启用HTTPS,同时设置http恳求智能跳转到对应的HTTPS地址。
Nginx的upstream性能技巧
Nginx作为经常出现的反向代理主机,其upstream性能在网站敌对台主机部署中表演着关键角色,旨在成功负载平衡和提高主机可用性。
经过深化了解upstream的性能,咱们可以更好地优化主机性能和稳固性。
基本色能语法
一个upstream性能首先须要定义称号,随后可以减少多个server,Nginx自动驳回轮询战略。例如:
upstream my_servers {server ;server ;}
关键参数
示例
上方是一个蕴含一切学习内容的示例性能:
upstream tf_servers {server max_fails=3 fail_timeout=30s;server ;backup ;}
总结
把握Nginx的upstream性能技巧关于构建高效和牢靠的主机环境至关关键。
经过调整这些参数,咱们可以优化服务负载,确保在主机缺点时能够极速复原,优化用户体验。
13《Nginx 入门教程》Nginx负载平衡(下)
这一小节中,咱们将实战 Nginx 的四层和七层负载平衡性能。
条件有限,经常使用一台公网主机,在上方搭建好 Nginx 服务。
公网 IP 为 180.76.152.113。
首先会启动便捷的四层负载平衡试验,不会触及多种负载平衡算法,只经常使用自动的 Round-Robin算法。
在后续的七层负载平衡试验中,会重点测试不同的负载平衡战略,成功关系试验。
首先在 中减少如下 stream 指令块性能: 上述性能用端口3000和3001模拟两个抢先主机,而后在 upstream 指令块中指定这两个抢先主机的地址,同时给第一个设置权重为2。
由于自动驳回的是加权的 Round-Robin 算法,自动主机的权重为1。
设置为2,标明3次恳求中,2次会转发到3000端口,一次性会转发到3001端口,上方的测试也验证了这一点。
和四层的性能其实差不多,在七层中除了测试最基本的,咱们还将测试前面提到的几种负载平衡战略,进一步相熟 Nginx 中的负载平衡性能。
在 中减少如下的 http 指令块: 上述性能中,咱们用8000,8001和8002三个端口模拟了3个抢先主机,自动经常使用轮询负载平衡算法,而且三个的权重均为1。
启动如下的 http 恳求操作,可以看到 Nginx 转发 http 恳求会平均地调配到3个主机上。
咱们关上 ip_hash 指令的注释,这个时刻自动是经常使用客户端的 ip 地址作为 hash 的 key,而后重启 Nginx 服务并启动如下的命令行操作: 接上去,注释 ip_hash 指令,咱们关上 hash user_$arg_username 这行性能的注释, hash 指令可以让咱们依据咱们设置的 key 启动 hash,而后依据 hash 值选用抢先的主机。
详细测试参看上方的 Linux 命令: 这里咱们可以看到,在恳求中带上 username 参数,Nginx 中性能的 hash 算法会依据恳求中带的 username 参数作为 key 去启动 hash,而后在依据 hash 结果映射抢先主机。
username 相反时,选用的抢先主机必需是一样的,只要在 username 的值出现变动时,前往的照应才或者有变动。
当天咱们成功了几个测试试验,关键是针对 Nginx 的四层和七层的负载平衡性能启动了测试。
这特性能在微服务部署中会有较多的运行。
由于高流量企业为保障服务的高可用性,往往会水平裁减多个相反性能的服务,部署在多台主机上,这个时刻负载平衡技术就能派上用场了,而 Nginx 提供了完善的负载平衡性能以及多种负载平衡算法,能满足大局部企业的需求,假设还不够,可以经过编写外部开发模块并集成到 Nginx,成功相应的需求。
所以说 Nginx 是十分值得学习和深化钻研的。