新手福音:什么是Nginx负载均衡?

1. 负载均衡

在学习负载均衡之前,我们要知道,为什么服务要集群部署?

大概了解一下,Tomcat 默认配置的最大并发请求是 150 个,也就是说一个 Tomcat 同时支持 150 个并发请求,当然了,也可以将其改大,改大之后,对于每个请求的响应速度会受到影响,这种方法不是解决问题的根本方法。对于一些高并发的应用来说,服务器应该要考虑集群部署(一般来说,当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群)。

只用一台服务器,这种架构模式对于早期的系统相对单一、并发请求相对较少的情况下是比较适合的,成本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?

就像上面开始时说的,增加服务器物理配置来解决问题是一种方法,但不是根本的方法,也就是说纵向解决问题的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡,其原理图如下:
新手福音:什么是Nginx负载均衡?
请求到达反向代理服务器后,反向代理服务器会将请求分发到后面挂载的每个真是的响应服务器。至于到底选择哪一台作为响应,这就涉及负载的策略问题。

2. 如何配置

2.1 实现效果

  • 浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,每次刷新页面,请求被平均到80808081 端口中,也就是两个服务轮流响应。

2.2 准备工作

  • 需要两台 tomcat 服务器,一台指定 8080端口,一台指定 8081端口
  • 在两台 tomcat 里面 webapps 目录中,分别创建名称是 edu 文件夹,在8080这台 edu 文件夹中创建页面 a.html,向页面显示8080,在8081这台 edu 文件夹中也创建页面 a.html,向页面显示8081,这样便于区分请求被哪台服务响应。

2.3 修改 Nginx 配置文件

每次修改完配置文件,记得重启Nginx服务
nginx的配置文件nginx.conf中进行负载均衡的配置

http {

upstream myserver{
server 192.168.17.129:8080;
server 192.168.17.129:8081;
}

server {
listen 80;
server_name 192.168.17.129;

location / {
proxy_pass http://myserver;
}
}
}

如果使用上面的配置,Nginx 反向代理服务器会采用默认的轮询策略,将请求逐一分配到不同的后端服务器。

2.4 Nginx 分配服务器策略

  • 轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除,上面没配置,就是默认使用轮询策略。

weight 代表权重,默认为 1,权重越大被分配的客户端越多,
down:表示当前的server暂时不参与负载
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器

upstream server_pool{
server 192.168.5.21 weight=10;
server 192.168.5.22 weight=10;
}
  • ip_hash
    每个请求按访问 iphash 结果分配,这样每个访客固定访问一个后端服务器,这种方式可以解决分布式系统中 session 的问题。 例如:
upstream server_pool{
ip_hash;
server 192.168.5.21:80;
server 192.168.5.22:80;
}
  • fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
	upstream server_pool{
server 192.168.5.21:80;
server 192.168.5.22:80;
fair;
}

3. 小结

上面就是Nginx负载均衡的介绍和配置。其实,负载均衡软件有很多种,Nginx 只是其中的一个,在 Linux 下有 NginxLVSHaproxy 等等服务可以提供负载均衡服务。


新手福音:什么是Nginx负载均衡?

原文始发于微信公众号(运维漫谈):新手福音:什么是Nginx负载均衡?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/220289.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!