Tomcat多实例部署和动静分离

一、多实例部署:

   多实例:多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。

  1.前期准备:

1.关闭防火墙:systemctl stop firewalld.servicesetenforce 02.准备安装包3.安装jdk:rpm -ivh jdk-8u201-linux-x64.rpm4.部署两个tomcat:mv apache-tomcat-9.0.16 /usr/local/tomcat1cp -a /usr/local/tomcat1/ /usr/local/tomcat2

  2.配置tomcat环境变量:

vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat1
export CATALINA_BASE1=/usr/local/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat1#tomcat2
export CATALINA_HOME2=/usr/local/tomcat2
export CATALINA_BASE2=/usr/local/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat2source /etc/profile.d/tomcat.sh  ##刷新配置

  3.更改端口号:

  修改 tomcat2 中的 server.xml 文件,各 tomcat 实例配置不能有重复的端口号

22行,修改Server prot,默认为8005 -> 修改为800669行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

  4.更改启动、关闭脚本的环境变量:

tomcat1:vim /usr/local/tomcat1/bin/startup.shexport CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1vim /usr/local/tomcat1/bin/shutdown.shexport CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1tomcat2:vim /usr/local/tomcat2/bin/startup.shexport CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export TOMCAT_HOME=$TOMCAT_HOME2vim /usr/local/tomcat2/bin/shutdown.shexport CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export TOMCAT_HOME=$TOMCAT_HOME2

  5.启动tomcat:

  6.测试:

二、动静分离:

  1.实验背景:

Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。
Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器。并且Tomcat并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配。

  2.地址分配:

(1)代理服务器(Nginx):

     192.168.88.100

  • 作为前端,处理静态请求,响应静态页面
  • 将动态请求转发到后端,由后端Toncat处理
  • 动态请求的负载均衡

(2)Tomcat服务器:

192.168.88.103:8080  192.168.88.103:8081  192.168.88.104:8080 

   作为后端,处理动态请求 

  3.配置tomcat:

  tomcat 8080#添加jsp界面
vim  /usr/local/tomcat1/webapps/www/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("动态页面 1,192.168.88.103:8080");%></body></html>#配置主机访问路径
vim /usr/local/tomcat1/conf/server.xml<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat1/webapps/www" path="" reloadable="true" /></Host>tomcat  8081
vim  /usr/local/tomcat2/webapps/www/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test2 page</title></head><body><% out.println("动态页面 2,192.168.88.103:8081");%></body></html>vim /usr/local/tomcat2/conf/server.xml<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat2/webapps/www" path="" reloadable="true" /></Host>tomcat 192.168.88.104:8080   同上#配置完成后重启服务
shutdown.sh    startup.sh

  4.配置nginx动静分离:

    4.1 在http块中配置服务器组:

upstream www {server 192.168.88.103:8080;server 192.168.88.103:8081;server 192.168.88.104:8080;
}

    4.2 配置动态静态请求的location:

##访问以jsp结尾的url时代理到动态服务器组 location ~ .*\.jsp$ {proxy_pass http://www;proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#ip透穿}##访问静态图片就用nginx本机处理:location ~ .*\.(jpg|png) {root /apps/nginx/html;
}nginx -s reload  ##刷新配置文件

5.测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/107402.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理

文章目录 PreJunit4 / Junit5 / Spring Boot / IDEAIDEA版本Spring-Boot-Older-Release-NotesSpringBootTest 起源 & Spring-Boot-1.4-Release-Notes2.0.0.RELEASE ----- 2.0.9.RELEASE2.1.0.RELEASE ----- 2.1.18.RELEASE2.2.0.RELEASE ~ 2.2.13.RELEASE2.3.0.RELEASE ~ 2…

BIO NIO AIO演变

Netty是一个提供异步事件驱动的网络应用框架&#xff0c;用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发&#xff0c;是很多框架和公司都在使用的技术。 Netty并非横空出世&#xff0c;它是在BIO&#xff0c;NIO&#xff0c;AIO演变中的产物…

自动化驱动程序管理

在部署操作系统时&#xff0c;每次都从下载和分发所需的驱动程序中实现真正的独立性可能是一场艰苦的战斗。特别是具有硬件多样化的环境&#xff0c;并且需要支持新的硬件类型时。借助 OS Deployer&#xff0c;可以对所有端点使用一个映像&#xff0c;无论品牌和型号如何&#…

成都都市圈公共图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

成都都市圈公共图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

【工作记录】MQTT介绍、安装部署及springboot集成@20230912

背景 近期公司可能会有物联网设备相关项目内容&#xff0c;提前对用到的mqtt协议做预研和初步使用。 最初接触到mqtt协议应该是早些年的即时通讯吧&#xff0c;现在已经是物联网设备最热门的协议了。 作为记录&#xff0c;也希望能帮助到需要的朋友。 MQTT介绍 《MQTT 协议规…

怎么把flac转换为mp3?方法操作极其简单

怎么把flac转换为mp3&#xff1f;作为热衷音乐的发烧友&#xff0c;您定会对一些高品质的音频作品情有独钟&#xff0c;而其中最经典的非FLAC音频格式莫属。FLAC以其无损压缩的特性而备受赞誉&#xff0c;完美地保留了音频数据的原汁原味和细腻之处。然而&#xff0c;FLAC文件的…

Python第一次作业练习

题目分析&#xff1a; """ 参考学校的相关规定。 对于四分制&#xff0c;百分制中的90分及以上可视为绩点中的4分&#xff0c;80 分及以上为3分&#xff0c;70 分以上为2分&#xff0c;60 分以上为1分; 五分制中的5分为四分制中的4分&#xff0c;4分为3分&#…

人类文明之光,历史上最伟大的10位程序员

21世纪&#xff0c;被称作计算机的时代&#xff0c;程序员是其中不可或缺的组成部分。不夸张的说&#xff0c;他们贡献改变了我们人类的整个文明进程。今天我们就来看看人类历史上最伟大的10位程序员。 丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;&#xff1a;C语言之父…

41 个下载免费 3D 模型的最佳网站

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 1. Pikbest Pikbest是一个设计资源平台&#xff0c;提供超过3万件创意艺术品。您可以在Pikbest上找到设计模板&#xff0c;演示幻灯片&#xff0c;视频和音乐等。您可以找到不同的3D模型&#xff0c;例如婚礼装饰&…

小程序中如何给会员一键拨号

一键拨号功能是一个非常实用的功能&#xff0c;商家可以快速与会员取得联系。下面&#xff0c;我们将介绍如何在小程序中实现一键拨号功能。 1. 会员绑定手机号。会员在个人中心点击设置按钮&#xff0c;在手机号码处&#xff0c;点击一键输入手机号。也可以在提交订单页面&am…

udev自动创建设备节点的机制

流程框图如下 自动创建 1 内核检测到设备插入后&#xff0c;会发送一个uevent事件到内核中&#xff0c;并提供有关硬件设备的信息。 2 udevd守护程序收到uevent事件后&#xff0c;创建一个设备类&#xff0c;&#xff08;向上提交目录信息&#xff09;&#xff0c;会在内核中…

8个免费的AI和LLM游乐场

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 在本文中&#xff0c;我们的目标是通过引入八个用户友好的平台来弥合这一差距&#xff0c;这些平台使任何人都可以免费测试和比较开源AI模型。此外&#xff0c;它们还提供多种更新型号&#xff0c;确保您及时了解最新进…