为什么性能测试很多同学觉得是一个比较难以自学上岸的测试领域,是因为真正做全链路的性能测试是比较难的。所谓的全链路就是在项目的整个链路上任何一环节都有可能存在性能测试瓶颈,我们都需要能够通过分析性能的监控指标找到对应的问题。
我们今天要讲的Nginx负载均衡就是属于项目链路的一个环节,如果这个环节出了问题,那么也会造成性能瓶颈问题。所以,我们就需要深入了解一下具体什么是Nginx,以及Nginx出了问题会带来什么样问题以及如何解决这些问题。
那么,这里讲到的反向代理又是什么?跟我们之前了解到的正向代理有什么区别呢?
正向代理:是给客户端做代理, 服务器收到的都是代理给我发过来的数据,不知道是哪个客户端;应用场景是客户端有集群时,代表就是VPN;
反向代理:是给服务器做代理,客户端访问服务器其实访问的都是代理的地址,不知道服务器是哪个 服务器地址不会暴露;应用场景就是有服务器集群时,代表是Nginx,可以保护服务器的地址不会暴露,也可以做负载均衡。
因为所有的流量都要经过这个反向代理,所以这个性能要求非常高,Nginx就是一个内存占用少,并发能力强的一种反向代理,所以使用非常广泛。
我们要学习Nginx就需要先安装部署一个Nginx服务,然后才能演示看到其工作原理。
第一步:安装依赖:yum install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel -y ,因为是C语言写的 所以要安装一些C语言的依赖;
第二步:安装pcre:
解压 :tar -xzvf download ,得到一个pcre-8.44 文件夹
进入解压后的文件夹:cd pcre-8.44/
• https://blog.csdn.net/m0_58552717/article/details/configure ,做编译,配置加载检查
• make && make install ,安装和编译
第三步:下载安装Nginx安装包:wget **http://nginx.org/download/nginx-1.19.5.tar.gz # 解压 进入nginx解压后的文件夹
https://blog.csdn.net/m0_58552717/article/details/configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
第四步:启动nginx:
1)cd /usr/local/nginx/sbin
2)https://blog.csdn.net/m0_58552717/article/details/nginx 【启动进程】
3)ps -ef | grep nginx :检查是否启动,启动master 和worker两个进程,说明启动成功了
第五步:访问一下这个Nginx服务是否可以访问成功
web页面访问:默认端口是80,地址:http://服务器ip地址, 能打开看到如下页面就说明成功了
nginx配置负载均衡肯定是因为有多个相同的服务,至少2个以上,所以我们要启动2项目:
1、修改nginx.conf配置文件,把 两个项目做成集群
2、配置完后,所有经过Nginx的流量,都会走到location里:location里的代理匹配web_app,就会找到upstream里进行负载均衡,按照权重的配置走到对应的服务器。
3、配置完成后,测试一下配置文件以及重新加载配置文件:
4、然后没有问题,就可以直接访问的是Nginx网关,由网关去做分配具体访问到哪个服务器。
此策略
比较适合服务器的硬件配置差别比较大的情况【性能好的服务器权重大,性能差的服务器权重小】但是这 个权重需要自己去计算,并进行压测去检验这个权重是否这是合理。*
不区分后台服务是什么样的,就是轮着来分配流量。此策略适合服务器配置相当,无状态且短平快的服务使用。
fail_timeout: 失败轮询时长;一直会轮训查询,因为可能会恢复 恢复了就正常分配流量了;
fail_timeout 服务器被认为停机的时长,默认10s
当按照如上配置好Nginx之后,可以对Nginx发起性能测试请求,有Nginx按照Nginx策略分发到不同的服务器上。
如果在测试时候,我们可以通过prometheus+grafana监控Nginx和服务器集群的压力情况:
server connection:可以看到服务器有几个处理请求,waiting特别多的话,就说明很多请求在等待,服务器很繁忙
Upstream :可以看到Nginx的负载均衡是否合理。如果压力都在某一台机器上,或者没有按照你配置的策略进行分配的话,那么可能就是你的负载均衡策略配置有问题或者失效了,需要去调整。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.xrbh.cn/tnews/11439.html