100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Nginx+Tomcat 搭建负载均衡 动静分离(tomcat多实例)

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

时间:2021-08-16 13:38:16

相关推荐

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

文章目录

一、Tomcat多实例配置1、关闭防火墙2、将软件包上传到/opt目录下3、安装JDK4、安装Tomcat5、配置tomcat环境变量6、修改tomcat2中的server.xml文件,7、修改各Tomcat1和2实例中的startup.sh和shutdown.sh文件。8、启动个tomcat中的/bin/startup.sh9、页面访问二、Nginx+ Tomcat 负载均衡、反向代理、动静分离1、实验环境2、部署Nginx负载均衡器2.1 关闭防火墙2.2 安装依赖环境2.3 创建nginx用户2.4 上传nginx包进行解压后编译安装2.5 优化nginx执行程序2.6 将nginx添加到系统管理3、部署第一台Tomcat1服务器3.1 关闭防火墙3.2 安装JDK3.2.1 上传JDK包,进行解压3.2.2 配置环境变量3.2.3 查看java版本3.3 安装Tomcat服务3.3.1 上传压缩包解压3.3.2 将执行文件加入到环境变量3.3.3 创建项目,设置页面动态标签3.3.4 设置tomcat主配置文件3.3.3 重新启动Tomcat4、部署第二台Tomcat2服务器4.1 关闭防火墙4.2 安装JDK方法与第一台一致4.3 安装tomcat服务与前部分与安装多例实验一样4.3.1 创建tomcat1项目目录,动态页面标签4.3.2 配置tomcat1 的主配置文件4.3.3 创建tomcat2 项目目录,动态页面标签4.3.4 修改主tomct2的配置文件4.3.4 重启tomcat服务5、 Nginx 配置负载均衡,反向代理5.1 设置静态页面5.2 设置静态图片5.3 配置负载均衡、反向代理5.4 其它服务器进行访问5.4.1 处理静态请求5.4.2 处理动态请求三、总结1、Tomcat多实例2、nginx+tomcat实验

一、Tomcat多实例配置

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

实验环境

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

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

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

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

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

1、关闭防火墙

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

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

3、安装JDK

安装jdk

配置环境变量

vim /etc/profile.d/java.shexport JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile.d/java.sh

查看jdk版本

4、安装Tomcat

创建tomcat目录,安装tomcat

tar -zxf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcatmv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1cp -a /usr/local/tomcat/tomcat1/ /usr/local/tomcat/tomcat2

5、配置tomcat环境变量

vim /etc/profile.d/tomcat.sh#tomcat1export CATALINA_HOME1=/usr/local/tomcat/tomcat1export CATALINA_BASE1=/usr/local/tomcat/tomcat1export TOMCAT_HOME1=/usr/local/tomcat/tomcat1#tomcat2export CATALINA_HOME2=/usr/local/tomcat/tomcat2export CATALINA_BASE2=/usr/local/tomcat/tomcat2export TOMCAT_HOME2=/usr/local/tomcat/tomcat2source /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_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1vim /usr/local/tomcat/tomcat1/bin/shutdown.sh# -----------------------------------------------------------------------------# Stop script for the CATALINA Server# -----------------------------------------------------------------------------export CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1vim /usr/local/tomcat/tomcat2/bin/startup.sh # -----------------------------------------------------------------------------# Start Script for the CATALINA Server# -----------------------------------------------------------------------------export CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export TOMCAT_HOME=$TOMCAT_HOME2vim /usr/local/tomcat/tomcat2/bin/shutdown.sh# -----------------------------------------------------------------------------# Stop script for the CATALINA Server# -----------------------------------------------------------------------------export CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export 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:8080http://20.0.0.57:8081

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

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

1、实验环境

nginx服务器:20.0.0.55:80Tomcat服务器1:20.0.0.56:8080Tomcat服务器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 /opttar 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=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecrReload=/bin/kill -s HUP $MAINPIDExecrStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.targetchmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.servicesystemctl 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/profileexport JAVA_HOME=/usr/local/jdk1.8.0_91export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATHsource /etc/profile

3.2.3 查看java版本

java -version

3.3 安装Tomcat服务

ln -s zxf apache-tomcat-9.0.16.tar.gzmv 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/binln -s /usr/local/tomcat/bin/shutdwon.sh /usr/local/bin

3.3.3 创建项目,设置页面动态标签

mkdir /usr/local/tomcat/webapps/testvim /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,");%></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,");%></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服务器上或者是不同的虚拟主机上。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。