一个专业运
维技术分享!

Nginx搭建负载均衡详细操作

什么是负载均衡?

互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。但是要如何将不同的用户的流量分发到不同的服务器上面呢?

那么通过使用nginx搭建的负载均衡器即可解决该问题

客户端的流量首先会到达负载均衡服务器,由负载均衡服务器通过一定的调度算法将流量分发到不同的应用服务器上面,同时负载均衡服务器也会对应用服务器做周期性的健康检查,当发现故障节点时便动态的将节点从应用服务器集群中剔除,以此来保证应用的高可用。

Nginx搭建负载均衡详细操作_什么是反向代理

搭建步骤以及准备条件:

搭建三台Linux服务器
一台安装Nginx,另外两台各安装Tomcat
对Nginx的/etc/nginx/conf.d/default.conf进行配置
测试负载均衡

这里我用的是使用Vmware创建三台Linux服务器,其中一台安装Nginx,为其使用dhclient分配ip为:192.168.248.128

另外两台安装jdk+Tomcat.,分别为其分配IP为:192.168.129和129.168.248.130.

结果如下图所示:

Nginx搭建负载均衡详细操作_nginx_02
详细操作:
1.克隆三台Linux服务器

1.1 以上图为例 dhclient 分配 ip地址

安装tomcat的两台服务器ip分别为192.168.30.128、192.168.30.130

安装的nginx的服务器ip为192.168.30.131
2.安装JDK和Tomcat

在192.168.30.128、192.168.30.130上先安装JDK,在安装tomcat

安装tomcat需要依赖JDK

安装步骤参考之前的文章
3.安装Nginx

在192.168.30.131安装Nginx
4.配置负载均衡

在192.168.30.131安装Nginx的服务器上, 打开/etc/nginx/conf.d/default.conf文件

#新增
upstream aa{
server 192.168.30.128:8080;
server 192.168.30.130:8080;
}

server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
#新增一行
proxy_pass http://aa;
}
}

Nginx搭建负载均衡详细操作_nginx_03
5.关闭Nginx上的安全组

使用 vi /etc/selinux/config

编辑config文件,修改SELNUX=disabled

如图所示:

Nginx搭建负载均衡详细操作_tomcat_04

注意:修改过安全组要把系统重启reboot下生效!

重启之后如果不能访问就要禁用掉防火墙:systemctl stop firewalld

并且开启Nginx:stystemctl start nginx
6.测试

通过 ​ ​http://192.168.30.131:80​​ 访问Nginx,即可看到实际访问了tomcat

Nginx搭建负载均衡详细操作_nginx_05
负载均衡的策略

Nginx搭建负载均衡详细操作_nginx_06

轮询 (默认)
特点:一个一个挨着访问,tomcat服务器会被依次访问
权重
weight=数字越大权重越大,被访问的几率越高
下边的配置上边的机器访问2次,下边的访问1次

​ Nginx搭建负载均衡详细操作_如何搭建负载均衡_07

ip黏着

根据用户的ip,绑定到一台tomcat服务器

根据客户端用户的ip地址计算出一个可以被访问的tomcat服务器

如果客户端用户的ip地址不变,那么访问的tomcat就固定了

Nginx搭建负载均衡详细操作_tomcat_08

原理:把用户的ip进行hash处理(取用户ip的hash值),对tomcat总数量取模,然后根据得到的值,对应找到要访问的Tomcat
反向代理和正向代理的区别

代理如果在服务器端就是反向代理,如果放在客户端就是正向代理

Nginx搭建负载均衡详细操作_什么是反向代理_09
反向代理 和 负载均衡 的关系?

什么是负载均衡? 搭建多个tomcat服务器,在用户访问量大的时候,可以访问不同的tomcat,减少某个tomcat的访问压力

在nginx中如果想实现负载均衡,需要借助反向代理机制



微信扫描下方的二维码阅读本文

赞(3) 打赏
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。小柳实验室 » Nginx搭建负载均衡详细操作

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏