互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。但是要如何将不同的用户的流量分发到不同的服务器上面呢?
那么通过使用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.
结果如下图所示:
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;
}
}
5.关闭Nginx上的安全组
使用 vi /etc/selinux/config
编辑config文件,修改SELNUX=disabled
如图所示:
注意:修改过安全组要把系统重启reboot下生效!
重启之后如果不能访问就要禁用掉防火墙:systemctl stop firewalld
并且开启Nginx:stystemctl start nginx
6.测试
通过 http://192.168.30.131:80 访问Nginx,即可看到实际访问了tomcat