首页 > 编程知识 正文

nginx分布式负载均衡,nginx四层负载均衡

时间:2023-05-06 12:49:39 阅读:130128 作者:672

1,这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢?

当前,现有网络的每个核心部分都随着业务量的增长,访问量和数据流量快速增长,其处理能力和计算强度也相应增长,单一服务器设备无法承担。 在这种情况下,放弃现有设备进行大量硬件升级会浪费现有资源。 另外,面对下一步的业务量增长,硬件升级成本高昂,性能优异的设备也无法满足当前业务量增长的需要。

为了应对这种情况,产生了廉价、有效、透明的方法来扩展现有网络设备和服务器的带宽,提高吞吐量,提高网络数据处理能力,提高网络的灵活性和可用性

2, 负载均衡的种类

1 )一是硬件解决。 一般硬件是NetScaler、F5、Radware、Array等商用负载平衡器,但它们比较昂贵

2 )一是软件解决,常见软件有LVS、Nginx、apache等,它们基于Linux系统,采用开源负载均衡策略.3, 这里我们只来说Nginx(其他的大家有兴趣可以自行查阅相关文档)

Nginx (发音相同的可乐)是在轻量级Web服务器/反向代理服务器和电子邮件(IMAP/POP3)代理服务器上,在BSD-like协议下发行。 由俄罗斯程序员Igorsysoev(xhDHL )开发,用于俄罗斯大型门户网站和搜索引擎Rambler ()漫步者) )俄语)。 其特点是占用内存少,并发性高,实际上,nginx的并发性确实在同一类型的web服务器上非常好。 在中国大陆使用nginx网站的用户有新浪、网上冲浪、腾讯等。

好处:

1:可以运行linux,有Windows移植版。

在2:高连接同时,Nginx是Apache服务器的一个很好的替代品,Nginx是美国从事虚拟主机业务的所有者们经常选择的软件平台之一。 因为是自己用电脑构建的,可以支持最多50,000个并发连接数的响应4, 创建两台Nginx服务器,所以现在只是模拟构建两台Nginx服务器。

负载平衡功能:

转发

清除故障

重新开始添加

高可用性Ha

如果我们想用Nginx,就必须满足以上四个条件。

我们配置负载平衡的目的是,当用户访问我们的服务器时,首先确定通过Nginx服务器传输到哪个Tomcat服务器以服务用户。 当然,这个概率由我们按权重构成。 经过Nginx分配,现在可以处理高并发访问。 在这里可以达到负载平衡的目的。5, 搭建Nginx首先,需要两台机器。 两台机器分别安装了Nginx和Tomcat。 IP分别为:192.168.200.129.192.168.200.13358 ww

rgb(0,0,0);font-family:'微软雅黑', '宋体', Arial;font-size:15px;background-color:rgb(255,255,255);">
接着我们需要将Nginx和Tomcat包分别拷贝到CentOS01和CentOS02上, 并且解压好, 这里就不再复述这个过程了.
然后我们需要关闭Linux的防火墙, 否则的话启动了Nginx也是连接不上的.


我们还是来再看下解压吧:

解压完之后我们需要编译安装:

1 ./configure 2 --prefix=/usr/local/nginx 3 --pid-path=/axdxxm/run/nginx/nginx.pid 4 --lock-path=/axdxxm/lock/nginx.lock 5 --error-log-path=/axdxxm/log/nginx/error.log 6 --http-log-path=/axdxxm/log/nginx/access.log 7 --with-http_gzip_static_module 8 --http-client-body-temp-path=/axdxxm/temp/nginx/client 9 --http-proxy-temp-path=/axdxxm/temp/nginx/proxy 10 --http-fastcgi-temp-path=/axdxxm/temp/nginx/fastcgi 11 --http-uwsgi-temp-path=/axdxxm/temp/nginx/uwsgi 12 --http-scgi-temp-path=/axdxxm/temp/nginx/scgi

注意:上边将临时文件目录指定为/axdxxm/temp/nginx,需要在/axdxxm下创建temp及nginx目录
mkdir -p /axdxxm/temp/nginx

生成了文件夹后我们直接拷贝上面的编译安装命令进行安装.

执行完上诉步骤后, 我们可以看到nginx目录下生成了Makefile文件,我们接着往下: 


然后使用Make命令, 运行结束后在使用Make install命令进行安装, 最后是启动Nginx:

查看是否启动成功:



配置反向服务代理器:
什么是反向服务呢? 首先说下正向服务, 例如爬虫程序, 我们主动出击去获取资源. 而反向服务我们是等待用户来访问. 区别在于主动和被动.
配置文件Nginx/conf/nginx.conf


配置Nginx转发条件


重启Nginx服务器



为了测试, 我们在两个Tomcat 服务器的index.jsp中分别加了这是来自于哪个ip下的Tomcat. 如下图所示:




重启好Nginx后, 我们再来访问192.168.200.129 这台机器, 我么可以发现其实访问的是129.168.200.130这台机器.



负债均衡的配置, 配置转发的权重: (另一台CentOS02 依然按照CentOS01的配置)


我们在这里配置了两台转发机器: 192.168.200.129和192.168.200.130, 它们的权重分别是2/3 和1/3, 也就是说访问三次192.168.200.129, 有两次是192.168.200.129上的Tomcat来处理, 有一次是192.168.200.130上的Tomcat来处理. 如果我们的Tomcat服务器更多 那么就需要在这里配置更多, 权重根据实际需求来划分.

同上, 搭建另一台机器192.168.200.130的负载均衡:



搭建Keepalived:(Keepalived需要依赖openssl)
这里如果我们的机器192.168.200.129 出现故障了呢? 那么怎么使用192.168.200.130上的Nginx进行转发呢? 怎么设置主机和备机呢? 如果主机死了怎么进行故障移除呢? 如果主机从不可用到可用状态又怎么进行恢复添加呢? 这些功能都是可以通过Keepalived来进行设置的.


Keepalived原理:

首先Keepalived可以在主机上产生一个虚拟的ip, 这里叫做vip(v是virtual的意思):192.168.200.150, keepalived会将这个vip绑定到交换机上.
当用户访问主机:192.168.200.129时, 交换机会通过这个ip和vip的对应找到192.168.200.129上的Nginx进行处理.
如果当有一天192.168.200.129上的Nginx挂掉的时候, Keepalived会立即在备机上生成一个相同的vip: 192.168.200.150, 当用户继续访问192.168.200.129时, 交换机上已经绑定了vip, 这时发现这个vip是存在于192.168.200.130上面的, 所以直接将请求转发到了备机上. 
如果主机被修复好能够继续对外提供服务时, 这时keepalived会将主机上继续生成这个vip, 同时回收在备机上生成的vip. 这个是通过心跳检查来判断主机已恢复使用.


我这里已经提前安装好了oppenssl, 关于具体安装方法大家可以自行百度. 
检查openssl 是否安装成功: 


Keepalived的安装命令:


查看Keepalived的安装目录:


编辑Keepalived的配置文件:

首先我们来清空配置文件(清空后会自动再生成一个keepalived.conf, 但是里面的内容为空)
关于为什么要清空, 因为我们已经配置好了一些相关内容, 直接使用即可.

 

这里是来设置虚拟IP和eth1:
因为我的CentOS是拷贝过来的, 所以这里是eth1, 关于怎么查看, 我们在文章开头有查看本机ip: ifconfig, 那里面有显示我们的网卡就是eth1.




配置完成之后, 启动keepalived:


检测Keepalived是否启动成功:

这里查看 我们的机器多了两个ip, 其实这两个ip都是虚拟ip

设置备机:|
这里的权重只要低于主机的100就好.


启动备机的Keepalived:



当主机停止服务时, 备机即可接管继续服务:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。