Nginx+Tomcat 搭建负载均衡、动静分离(tomcat多实例)

文章目录

一、Tomcat多实例配置

Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,互补影响。多实例与虚拟主机不同,虚拟主机的本质是在一个服务下有多个相对独立的目录,但是多实例却存在了多个服务。

实验环境

  • tomcat1使用的端口为默认端口:8080、8005、8009

  • tomcat2使用的端口为:8081、8006、8010

8080端口: 用来监听tomcat服务的端口,

8005端口: 用来监听关闭tomcat服务的端口

8009端口: 负责和其他的HTTP服务器建立连接

1、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

在这里插入图片描述

2、将软件包上传到/opt目录下

在这里插入图片描述

3、安装JDK

安装jdk
在这里插入图片描述

配置环境变量

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile.d/java.sh

在这里插入图片描述
在这里插入图片描述

查看jdk版本
在这里插入图片描述

4、安装Tomcat

创建tomcat目录,安装tomcat

tar -zxf apache-tomcat-9.0.16.tar.gz 
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1/ /usr/local/tomcat/tomcat2

在这里插入图片描述

5、配置tomcat环境变量

vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1

#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2

source /etc/profile.d/tomcat.sh

在这里插入图片描述
在这里插入图片描述

6、修改tomcat2中的server.xml文件,

为什么要修改tomcat2,不修改tomcat1的呢,因为要求各tomcat实例配置不能有重复的端口号,tomcat1的端口是安装tomcat默认的端口,tomcat2时复制过来的端口,所以我们该tomcat2的端口就行了。

vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN">		#22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1"		#69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />	#116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

第一个连接器默认监听8080端口,负责建立HTTP连接,在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器
第二个连接器默认监听8009端口,负责和其它的HTTP服务建立连接,在把Tomcat与其它HTTP服务器集成时,使用这个连接器。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、修改各Tomcat1和2实例中的startup.sh和shutdown.sh文件。

vim /usr/local/tomcat/tomcat1/bin/startup.sh 
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1


vim /usr/local/tomcat/tomcat2/bin/startup.sh 
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2


vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2

在这里插入图片描述

8、启动个tomcat中的/bin/startup.sh

/usr/local/tomcat/tomcat1/bin/startup.sh 
/usr/local/tomcat/tomcat2/bin/startup.sh 

netstat -natp |grep java

在这里插入图片描述
在这里插入图片描述

9、页面访问

http://20.0.0.57:8080
http://20.0.0.57:8081

在这里插入图片描述

二、Nginx+ Tomcat 负载均衡、反向代理、动静分离

Nginx +Tomcat 结合原理:

当客户端请求的是静态页面或者图片,直接返回给客户端。
当客户端请求的是动态页面,那么nginx将作为反向代理,通过负载均衡将动态请求转发到Tomcat上进行执行,Tomcat执行完后,将内容返回给nginx,最后到达客户端。

1、实验环境

nginx服务器:20.0.0.55:80

Tomcat服务器1:20.0.0.56:8080

Tomcat服务器2:20.0.0.57:8080  Tomcat服务器2:20.0.0.57:8081  (服务器2安装两个Tomcat)

2、部署Nginx负载均衡器

2.1 关闭防火墙

在这里插入图片描述

2.2 安装依赖环境

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

在这里插入图片描述

2.3 创建nginx用户

useradd -M -s /sbin/nglogin nginx

在这里插入图片描述

2.4 上传nginx包进行解压后编译安装

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持
--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
--with-stream										#启用 stream模块,提供4层调度

make && make install

在这里插入图片描述
在这里插入图片描述

2.5 优化nginx执行程序

ln -s /usr/local/nginx/sbin/nginx /usr/local/nginx

在这里插入图片描述

2.6 将nginx添加到系统管理

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、部署第一台Tomcat1服务器

3.1 关闭防火墙

在这里插入图片描述

3.2 安装JDK

3.2.1 上传JDK包,进行解压
tar -zxf jdk-8u91-linux-x64.tar.gz -C /usr/local

在这里插入图片描述

3.2.2 配置环境变量
vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.3 查看java版本
java -version

在这里插入图片描述

3.3 安装Tomcat服务

ln -s zxf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16.tar.gz /usr/local/tomcat
3.3.1 上传压缩包解压

在这里插入图片描述

3.3.2 将执行文件加入到环境变量
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
ln -s /usr/local/tomcat/bin/shutdwon.sh /usr/local/bin

在这里插入图片描述

3.3.3 创建项目,设置页面动态标签
mkdir /usr/local/tomcat/webapps/test
vim /usrl/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>   #指定为 test1 页面
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

在这里插入图片描述

3.3.4 设置tomcat主配置文件
vim /usr/local/tomcat/conf/server.xml
#由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true">
	</Context>
</Host>

在这里插入图片描述

3.3.3 重新启动Tomcat

在这里插入图片描述

4、部署第二台Tomcat2服务器

4.1 关闭防火墙

在这里插入图片描述

4.2 安装JDK方法与第一台一致

4.3 安装tomcat服务与前部分与安装多例实验一样

根据前面多实例步骤部署好一个服务器两个tomcat服务,一个tomcat1一个tomcat2,并且能正常访问到两个tomcat服务。

访问到之后,下面再修改页面标签。
4.3.1 创建tomcat1项目目录,动态页面标签
mkdir /usr/local/tomcat/tomcat1/webapps/test 

vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>   #指定为 test2 页面
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>

在这里插入图片描述

4.3.2 配置tomcat1 的主配置文件

在这里插入图片描述

4.3.3 创建tomcat2 项目目录,动态页面标签

在这里插入图片描述

4.3.4 修改主tomct2的配置文件

在这里插入图片描述

4.3.4 重启tomcat服务

在这里插入图片描述

5、 Nginx 配置负载均衡,反向代理

5.1 设置静态页面

echo '<html><body><h1>zhis is jingtai  page </h1></body></html>' > /usr/local/nginx/html/index.html

在这里插入图片描述

5.2 设置静态图片

在这里插入图片描述

5.3 配置负载均衡、反向代理

在这里插入图片描述
在这里插入图片描述

5.4 其它服务器进行访问

5.4.1 处理静态请求

访问静态页面
在这里插入图片描述

访问静态图片
在这里插入图片描述

5.4.2 处理动态请求

访问地址为:http://20.0.0.55/index.jsp  ,然后按F5进行轮询切换不同tomcat服务

访问tomcat1服务器上
在这里插入图片描述

访问tomcat2服务器上

tomcat1服务
在这里插入图片描述

tomcat2服务
在这里插入图片描述

三、总结

1、Tomcat多实例

Tomcat多实例表示为在一个服务器上可以运行多个Tomcat服务,每个Tomcat服务相对独立,配置文件也是独立的,但是需要注意的是,Tomcat默认的端口为8080,如果有两个Tomcat服务,那么有另外一个服务的需要改成不同的端口。

这个与虚拟主机不同,虚拟主机时在一个Tomcat服务上,运行多个Host项目,在同一个主配置文件中进行配置不同的Host。

2、nginx+tomcat实验

nginx+tomcat实验的本质,就是使用作为反向代理,将客户端发出的动态请求转发到Tomcat上,让Tmoca进行处理。还可以通过负载均衡设置Tomcat的地址池。可以使得nginx反向代理到多个不同的Tomcat服务器上或者是不同的虚拟主机上。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于您提到的keepalived、nginxtomcat、redis和mysql,这些是常用于构建高可用和负载均衡的Web应用架构的关键组件。 1. Keepalived:Keepalived是一种开源的高可用解决方案,可以提供IP地址和服务的故障转移。它通常与负载均衡器(如Nginx)一起使用,以确保当主服务器故障时,备份服务器可以接管服务。 2. NginxNginx是一款高性能的开源Web服务器和反向代理服务器。它可以作为负载均衡器,在多个后端服务器(如Tomcat、Redis和MySQL)之间分发请求,并提供静态文件的高效传输。 3. TomcatTomcat是Java Servlet容器,用于部署和运行Java Web应用程序。它可以作为应用服务器与Nginx配合使用,通过反向代理将请求分发到多个Tomcat实例,以实现负载均衡和高可用性。 4. Redis:Redis是一种基于内存的开源键值存储数据库,被广泛用于缓存、会话存储和消息队列等场景。在Web应用架构中,Redis可以作为缓存层,提高数据读取速度,并减轻后端数据库(如MySQL)的负载。 5. MySQL:MySQL是一种流行的开源关系型数据库管理系统,常用于存储应用程序的持久化数据。它可以与Tomcat结合使用,作为后端数据库存储和管理数据。 以上是对keepalived、nginxtomcat、redis和mysql的简要介绍,它们在Web应用架构中扮演着不同的角色,以提供高可用、高性能和负载均衡的服务。如果您对其中任何一个组件有更具体的问题,我很乐意为您解答。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值