Nginx+Tomcat 搭建负载均衡、动静分离(tomcat多实例)
文章目录
- 一、Tomcat多实例配置
- 1、关闭防火墙
- 2、将软件包上传到/opt目录下
- 3、安装JDK
- 4、安装Tomcat
- 5、配置tomcat环境变量
- 6、修改tomcat2中的server.xml文件,
- 7、修改各Tomcat1和2实例中的startup.sh和shutdown.sh文件。
- 8、启动个tomcat中的/bin/startup.sh
- 9、页面访问
- 二、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 安装JDK
- 3.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 重新启动Tomcat
- 4、部署第二台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 firewalld
systemctl disable firewalld
setenforce 0
2、将软件包上传到/opt目录下
3、安装JDK
安装jdk
配置环境变量
vim /etc/profile.d/java.shexport 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:$PATHsource /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/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_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1vim /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_HOME1vim /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_HOME2vim /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: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 /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.targetchmod 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/profileexport 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:$PATHsource /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服务器上或者是不同的虚拟主机上。
Nginx+Tomcat 搭建负载均衡、动静分离(tomcat多实例)相关推荐
- Nginx 反向代理 负载均衡 动静分离 高可用 原理
1.Nginx简介 1.1 概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能 ...
- Nginx 方向代理/负载均衡/动静分离/高可用
一,反向代理 正向代理:正向代理服务器位于客户端和服务器之间,为了向服务器获取数据,客户端要向代理服务器发送一个请求,并指定目标服务器,代理服务器将目标服务器返回的数据转交给客户端.这里客户端是要进行 ...
- nginx+apache实现负载均衡+动静分离配置(编译安装)
一.编译安装nginx cd /usr/local/src wget http://nginx.org/download/nginx-1.6.3.tar.gz tar -zxvf nginx-1.6. ...
- HAproxy负载均衡动静分离实现及配置详解
HAproxy负载均衡动静分离实现及配置详解 HAproxy的介绍 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAP ...
- ngixn+tomcat负载均衡 动静分离配置 (nginx反向代理)
文章目录 Tomcat主要配置文件 Nginx负载均衡实现原理 实验环境 动静分离配置 创建静态页面 配置动态页面 图片动静分离 Tomcat主要配置文件 bin:存放启动和关闭Tomcat脚本 co ...
- Nginx快速入门(安装 负载均衡 动静分离 主备 原理)
什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ra ...
- apache+tomcat 搭建负载均衡系统
apache+tomcat+mod_jk 搭建负载均衡系统. 0.os系统采用centos6.8 x64 2.6.32-642.el6.x86_64 1.首先安装好jdk环境本次采用jdk-8u111 ...
- 四层负载均衡 动静分离和资源分离 Rewrite rewrite伪静态实例
文章目录 四层负载均衡 四层负载均衡特点 查看四层负载均衡语法 四层负载均衡配置 优化配置文件 四层负载均衡日志配置 nginx的TCP负载均衡---端口转发 动静分离 单台的动静分离 多台机器动静分 ...
- Nginx的动态代理,负载均衡,动静分离的简单使用
nginx 一 Nginx介绍 1.1 为什么要学习Nginx 问题1: 客户端到底要将请求发送那台服务器 问题2:所有客户端的请求都发送给了服务器1 问题3:客户端发送的请求可能是申请静态资源的,也 ...
最新文章
- B站上线!DeepMind加UCL强强联手推出深度学习与强化学习进阶课程(附视频)
- hdu 1548 	A strange lift
- PHP全栈开发(八):CSS Ⅸ dispaly visibility
- 【Spring注解系列10】SpringBean的生命周期
- [转]避免PHP-FPM内存泄漏导致内存耗尽
- MySQL 中and 与or的优先级
- ILMerge合并多个DLL
- jmete 学习--基础之名词解释
- 计算机网络常见面试真题详解
- mysql修改主从复制id_mysql主从复制设置
- python一元加号_Python一元方程解算系统(需要Sympy库支持)
- Jmeter 使用badyboy 录制脚本
- python xlwt模块使用_Python使用xlwt模块 操作Excel文件(转载)
- Linq to Oracle 使用教程(七)将数据库的存储过程映射到方法
- Zookeeper实现简单的分布式RPC框架
- [Ogre][地形][原创]基于OgreTerrain的地形实现
- Java常用设计模式(面试常考)
- 计算机ip地址无法更改,win7电脑无法更改ip地址静态ip不能保存怎么办
- centos搭建samba服务
- linux cad 安装教程视频,Ubuntu18.04安装FreeCAD教程
热门文章
- 每日一词20190316——GIS矢量数据和栅格数据对比
- 【产品志】全白色 MATX 方案
- Photoshop%e5%bf%ab%e6%8d%b7%e9%94%ae%e5%ae%8c%e6%95%b4%e7%af%87
- 华为无线认证服务器类型,华为ap 配置认证服务器
- 【Kotlin】告别KAPT,拥抱KSP API
- 霸气牵手众多手机品牌商,苏宁手机蜜蜂节实力彰显行业影响力
- 对学生公寓部建议和意见_关于进一步加强学生公寓管理工作的意见
- android_驱动_qcom_【高通SDM660平台】(1) ---Bringup Guide
- PS照片美化处理实例教程
- 什么是gpo,gpt,gpc(活动目录组策略)