ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

性能测试中间件Nginx负载均衡调试(一)

2021-10-22 15:00:12  阅读:98  来源: 互联网

标签:负载 hash nginx ip 中间件 server Nginx 服务器


Nginx简介

nginx是一款开源的高性能开源代理服务器,常用于http代理、反向代理、负载均衡以及web缓存。从应用方式和场景可以看出nginx常常作为服务端系统架构最为重要的一个中间件之一,同样nginx也可能会存在性能瓶颈导致服务端整体性能问题

Nginx负载均衡策略

nginx作为中间件主要作用就是负责对请求进行分发从而起到负载均衡作用,nginx自带四种负载均衡策略分别是:轮询 、weight、ip_hash、least_conn,以及两种第三方策略fair和url_hash。nginx默认的负载均衡策略为轮询

轮询策略

● 以下是一个nginx部分配置,主要看upstream部分(nginx负载均衡通过配置upstream来实现请求转发)其他可忽略,在upstream中如果没有指定任何策略时,nginx会自动执行轮询策略来对请求进行转发到两台服务器上。
● nginx会检查upstream中配置的服务器是否挂掉,如果检测到服务器挂掉则会从轮询中剔除。当然也可以手动配置轮询策略的辅助参数来自定义服务挂掉的标准(fail_timeout、max_fails、down)

upstream ysc_m_sw_server   {
        server   10.8.0.6:8081;
        server   10.8.0.4:8081;
}
server {
        server_name ysc.m.sw.com;
        ........

轮询策略调优问题:
轮询策略按照请求数量平均转发到upstream中配置的服务器,各服务器处理的请求数量基本一致
潜在问题①:服务器之间如果存在硬件配置差异,会导致配置低的服务器负载过高
潜在问题②:请求中如果处理时间较长(资源占用高)的请求集中到某一台服务器,也会导致该服务器负载过高

weight权重策略

● 权重策略是通过对upstream中的server配置指定权重参数weight来实现按权重比例转发请求
● 权重策略通常用在服务器存在配置差异时低配置服务器负载过高情况

upstream ysc_m_sw_server   {
				# 6配置较高服务器,weight权重更高,4服务器配置相对低权重配置较低
        server   10.8.0.6:8081 weight=5;
        server   10.8.0.4:8081 weight=4;
}
server {
        server_name ysc.m.sw.com;
        ........

ip_hash策略

● ip_hash策略原理是:按每个请求原始访问ip的hash来进行请求转发,而同一ip的hash不会发生改变所以每个固定客户端的请求只会访问一个后端应用服务器
● ip_hash策略解决了多个应用服务器之间session不同步的问题

upstream ysc_m_sw_server   {
ip_hash;
        server   10.8.0.6:8081;
        server   10.8.0.4:8081;
}
server {
        server_name ysc.m.sw.com;
        ........

ip_hash策略调优问题:
ip_hash的原理为同一ip的请求都转发到同一台服务器上
潜在问题:ip_hash策略下后端服务器负载很难相同,所以可能造成在某台服务器负载过高

标签:负载,hash,nginx,ip,中间件,server,Nginx,服务器
来源: https://blog.csdn.net/weixin_44894271/article/details/120905943

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有