nginx应用场景:
微服务多个实例的负载均衡、流量控制、反向代理。
nginx的反向代理:
例:将我部署的个人博客实现反向代理
把server里面的server_name字段填写为zishitest666.site的域名,在location里面实现要代理到我的服务器的8090端口上,这样就是一个反向代理的过程
nginx实现负载均衡:
负载均衡的作用:可以将客户端的请求分发到多个后端服务器,避免单个服务器过载
实现过程:描述一个upstream关键字 存储多个实例对象
在location的proxy_pass指向前面的upstream对象
默认是按顺序去分发请求,可以设置好权重比
ngixn流量控制:
1imit_req_zone指令定义了一个存储状态的空间,这里叫做one,大小为10MB。它使用客户端的IP地址($binary_remote_addr)作为关键字,并设置了请求速率为1请求/秒(rate=lr/s)。
1imit_req指令在1ocation块内部用于限制来自单个!P的请求。zone=one表示使用之前定义的1imit_reg_zone,burst=5表示当请求超过定义的速率时,可以额外接受的请求数量。这意味着在1秒钟内,如果有一个IP发送了超过1个请求,Nginx会立即开始限制该IP,最多允许它发送5个额外的请求。
测试策略:
如果有测试需求,测试对象是被测服务中nginx机制的正确性。
负载均衡-模拟多个请求,通过服务的日志结果验证负载均衡的策略是否符合期望值
流量控制-模拟多个请求,触发限流规则,验证限流规则是否生效(如果是短时间多个请求,一般可以通过python的多线程来实现)