详解通过Nginx 实现Tomcat 负载均衡环境(图文并茂,超详细)

     负载均衡,英文名称为Load Balance,其意思就是基于现有网络结构之上,将任务分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

1、环境规划

    该环境采用三台机器进行部署,其中一台作为ngix服务器,另外两台作为tomcat服务器(以下仅作示例说明,具体环境规划请以实际情况而定)。

 

2、Tomcat集群架构说明 

多个客户端发送请求访问系统,由nginx对请求进行分发,由不同的tomcat服务器进行处理,最终实现负载均衡,减轻服务器压力,提高服务性能和工作效率。

3、环境安装配置说明

3.1 Nginx安装简介

3.1.1 环境准备(因为ngix需要编译安装,所以需要先准备以下环境)

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

安装pcre和pcre-devel:

yum install -y pcre pcre-devel

安装zlib zlib提供了很多压缩和解方式,nginx需要zlib对http进行gzip:

yum install -y zlib zlib-devel

安装openssl openssl是一个安全套接字层密码库,nginx要支持https,需要使用openssl:

yum install -y openssl openssl-devel

3.1.2下载 nginx

  • 通过访问ngix官网直接下载

nginx下载地址:http://nginx.org/en/download.html

nginx官网提供了三个类型的版本:

a. Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版 

b.Stable version:最新稳定版,生产环境上建议使用的版本

c. Legacy versions:遗留的老版本的稳定版

此处为了稳妥起见,我下载的是nginx-1.14.2 

  • 如果服务器上可以联网,直接下载,如下所示:

wget http://nginx.org/download/nginx-1.14.2.tar.gz

3.1.3 安装 nginx1.14.2

#解压 nginx1.14.2

tar zxf nginx-1.14.2.tar.gz

#cd到文件路径

cd nginx-1.14.2

#编译

./configure --prefix=/usr/soft/nginx-1.14.2 --conf-path=/usr/local/nginx/nginx.conf  

#安装

make && make install

 3.1.4对外开放 80 端口 

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

sudo firewall-cmd --reload

 3.1.5启动nginx

cd /usr/soft/nginx-1.14.2

sudo ./sbin/nginx

其它命令

sudo ./sbin/nginx -s stop :停止 nginx;

sudo ./sbin/nginx -s reload:配置文件修改,重新加载配置文件;

sudo ./sbin/nginx  -t:查看nginx是否启动成功;

sudo ./sbin/nginx -v:查看nginx版本;

 3.1.6 Nginx访问 

浏览器访问:http://192.168.7.231:80/,出现nginx首页表示安装启动成功 

3.2tomcat 安装、配置简介

3.2.1 tomcat下载

到tomcat官网下载apache-tomcat-8.5.37

3.2.2 拷贝安装包

 将安装包拷贝到221服务器上,解压 tomcat 至相应的目录(本人目录:/usr/soft/apache-tomcat-8.5.37);

3.2.3配置tomcat

 修改 tomcat 端口为 18080 的 server.xml 文件(目录:apache-tomcat-8.5.37/conf)为以下内容,为避免启动程序出现错误,共修改了三处位置:

(1)修改8005为18005

(2)修改8080为18080

 

 (3)修改8009为18009

 

4区别tomcat

为了区别两个 tomcat 的差别,切换到apache-tomcat-8.5.37/webapps/ROOT 目录下,修改 index.jsp ,<body>标签中添加内容 <h1>Tomcat 221:18080</h1>,启动 tomcat 服务输入 http://192.168.7.221:18080,如果成功则出现以下页面:

 

5)配置另外一台tomcat服务器

将安装包拷贝到222服务器上解压安装,修改 tomcat 端口为28005、 28080、28009 的 server.xml 文件,和index.jsp文件;

4、配置 nginx 来实现负载均衡,

4.1配置nginx服务器

打开目录 /usr/soft/nginx-1.14.2找到 nginx.conf 文件并进行如下修改:

(1)修改nginx.conf 前建议先备份文件

cp    nginx.conf  nginx.conf.bak

(2)修改nginx.conf文件

如果为域名访问则需要修改server_name后面的值为当前服务域名,如下所示:

 

(3)重新加载nginx服务器

sudo ./sbin/nginx -s reload

4.2测试通过nginx代理访问

(1)启动两个Tomcat实例

(2)使用浏览器进行访问,验证nginx的负载均衡是否已成功生效

在第一台客户机上访问http://192.168.7.231:80,效果如下所示:

 在另外一台客户机上访问http://192.168.7.231:80,效果如下所示: 

 至此实现负载均衡,验证成功!如果大家还想深入学习,可以扫描下图关注本人公众号,本人将在上面分享更多学习资料,也欢迎各位跟我一起探讨相关知识。

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Nginx可以通过其内置的负载均衡模块实现负载均衡。具体步骤如下: 1. 在Nginx配置文件中定义多个upstream服务器组,例如: ``` upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com; } ``` 2. 在Nginx配置文件的server块中使用proxy_pass指令,并将其设置为上述定义的upstream服务器组,例如: ``` location / { proxy_pass http://backend; } ``` 3. 根据需要配置其他负载均衡相关的参数,例如: ``` upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com; ip_hash; keepalive 64; } ``` 其中,ip_hash可以让同一个IP的请求始终被分配到同一个后端服务器上,keepalive可以保持连接以提高性能。 这样,当Nginx接收到请求时,它会将请求转发给upstream服务器组中的一个服务器,从而实现负载均衡。 ### 回答2: Nginx是一个高性能的Web服务器,也可以作为负载均衡器使用。Nginx实现负载均衡主要依靠以下几个关键步骤: 1. 安装Nginx并配置:首先需要在服务器上安装Nginx,并进行相关的配置。配置文件中会定义Nginx作为负载均衡器的角色和相关参数。 2. 配置后端服务器:接下来需要在Nginx配置文件中指定后端服务器的地址和端口号。可以根据实际情况配置多个后端服务器,并为每个服务器指定权重或优先级。 3. 选择负载均衡算法:Nginx支持多种负载均衡算法,如轮询、IP哈希、最少连接等。可以根据需求选择合适的算法,以实现均衡地分配请求负载。 4. 配置健康检查:为了确保后端服务器的可用性,可以配置Nginx进行健康检查。通过定期发送请求来检查后端服务器是否正常响应,以及是否能够处理请求。 5. 配置会话保持:对于需要保持会话的应用,可以配置Nginx实现会话保持功能。可以通过标记请求中的特定Cookie或IP进行会话保持,将同一客户端的请求发送到同一后端服务器。 6. 运行Nginx:完成配置后,运行Nginx服务器。当客户端请求到达时,Nginx会根据配置的负载均衡算法来选择合适的后端服务器,并将请求转发给该服务器。 通过以上步骤,Nginx可以实现负载均衡的功能,将请求均衡地分发给后端服务器,提高系统的性能和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值