实操Nginx+Tomcat多实例部署,实现负载均衡和动静分离

192.168.10.10

192.168.10.20

192.168.10.30

 location ~ \.jsp$ {proxy_pass http://192.168.10.50:8080;} location ~ \.(jsp|html)$ {root /usr/share/nginx/html;}

192.168.10.40和192.168.10.50用脚本完成搭建此处安装附上脚本:

#!/bin/bash# 定义变量
JDK_PACKAGE="jdk-8u201-linux-x64.rpm"
JDK_INSTALL_PATH="/usr/java/jdk1.8.0_201-amd64"TOMCAT_PACKAGE="apache-tomcat-9.0.16.tar.gz"
TOMCAT_INSTALL_PATH="/usr/local/tomcat"
TOMCAT_USER="tomcat"
TOMCAT_GROUP="tomcat"# Function to install JDK
install_jdk() {if [ -e "$JDK_PACKAGE" ]; thenrpm -ivh "$JDK_PACKAGE" &> /dev/nullif [ $? -eq 0 ]; thenecho -e "E[1;32m JDK 安装成功 E[0m"elseecho -e "E[1;31m JDK 安装失败 E[0m"fielseecho "无 JDK 包"fi
}# Function to modify environment variables
setup_environment() {echo "
export JAVA_HOME=$JDK_INSTALL_PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profilesource /etc/profile
}# Function to install Tomcat
install_tomcat() {if [ -e "$TOMCAT_PACKAGE" ]; thentar zxvf "$TOMCAT_PACKAGE" &> /dev/nullcp -r $(basename "$TOMCAT_PACKAGE" .tar.gz) "$TOMCAT_INSTALL_PATH"useradd -s /sbin/nologin "$TOMCAT_USER"chown "$TOMCAT_USER":"$TOMCAT_GROUP" "$TOMCAT_INSTALL_PATH" -Rcat > /usr/lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
ExecStart=$TOMCAT_INSTALL_PATH/bin/startup.sh
ExecStop=$TOMCAT_INSTALL_PATH/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=$TOMCAT_USER
Group=$TOMCAT_GROUP[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reloadsystemctl start tomcatif systemctl status tomcat &> /dev/null; thenecho -e "E[1;32m Tomcat 启动成功 E[0m"elseecho -e "E[1;31m Tomcat 启动失败 E[0m"fielseecho "无 Tomcat 安装包"fi
}# Main script execution
install_jdk
setup_environment
java -version
install_tomcat# Create symbolic links for Tomcat binary files
ln -s $TOMCAT_INSTALL_PATH/bin/* /usr/bin# 检查 JDK 版本
echo -e "E[1;36m 检查 JDK 版本: E[0m"
java -version# 检查 Tomcat 版本
echo -e "E[1;36m 检查 Tomcat 版本: E[0m"
cat $TOMCAT_INSTALL_PATH/RELEASE-NOTES | grep "Apache Tomcat Version"
# 获取本机 IP 地址
IP_ADDRESS=$(hostname -I | awk '{print $1}')# 将 IP 地址写入到 index.jsp 文件
echo $IP_ADDRESS > /usr/local/tomcat/webapps/ROOT/index.jspecho "IP 地址已写入到 /usr/local/tomcat/webapps/ROOT/index.jsp 文件中"

 192.168.10.40

192.168.10.50

 

结果验证:

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

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

相关文章

等保测评——云计算安全扩展(云计算关键技术)

虚拟化技术: 虚拟化是云计算的核心技术之一&#xff0c;它为云计算服务提供基础架构层面的支撑&#xff0c;是ICT&#xff08;信息通信技术&#xff09;服务快速走向云计算的最主要驱动力。虚拟化作为云计算的重要组成部分&#xff0c;最大的好处是能增强系统的弹性和灵活性&a…

【微服务网关——Websocket代理】

1.Websocket协议与原理 1.1 连接建立协议 1.1.1 客户端发起连接请求 客户端通过 HTTP 请求发起 WebSocket 连接。以下是一个 WebSocket 握手请求的例子&#xff1a; GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key…

题目:只通过+1和×2两种操作,最少几次能把0变成20240701?

偶然在网上看到了一个题目&#xff0c;看了看视频和评论&#xff0c;感觉挺有意思&#xff0c;记录一下。 只通过1和2两种操作&#xff0c;最少几次能把0变成20240701&#xff1f;_哔哩哔哩_bilibili 题目&#xff1a;只通过1和2两种操作&#xff0c;最少几次能把0变成202407…

Python面试宝典第3题:石子游戏

题目 Alice 和 Bob 用几堆石子在做游戏&#xff1a;一共有偶数堆石子&#xff0c;排成一行&#xff1b;每堆都有正整数颗石子&#xff0c;数目为 piles[i] 。游戏以谁手中的石子最多来决出胜负&#xff0c;石子的总数是奇数 &#xff0c;所以没有平局。 Alice 和 Bob 轮流进行&…

CV01_相机成像原理与坐标系之间的转换

目录 0.引言&#xff1a;小孔成像->映射表达式 1. 相机自身的运动如何表征&#xff1f;->外参矩阵E 1.1 旋转 1.2 平移 2. 如何投影到“像平面”&#xff1f;->内参矩阵K 2.1 图像平面坐标转换为像素坐标系 3. 三维到二维的维度是如何丢失的&#xff1f;…

LVS-负载均衡

目录 一、概念 二、LVS工作原理 1. ipvs/ipvsadm 2.名词&#xff1a; 三、常用命令 四、工作模式 1.NAT地址转换模式 &#xff08;1&#xff09;工作流程 &#xff08;2&#xff09;特点 &#xff08;3&#xff09;实验过程 a.环境准备&#xff1a; b.修改测试机的…

UE5 动画蓝图

文章目录 一、State Machines二、Blend Spaces三、Aim Offset四、Montage 初步介绍 Unreal Engine 5 Tutorial - Animation Blueprint Part 1: State Machines (youtube.com) Unreal Engine 5 Tutorial - Animation Blueprint Part 2: Blend Spaces (youtube.com) Unreal Engi…

非静压模型SWASH学习(8)——三维孤立波在锥形岛屿上的爬坡过程(Runup of solitary waves on a conical island)

三维孤立波在锥形岛屿上的爬坡过程&#xff08;Runup of solitary waves on a conical island&#xff09; 算例简介模型配置网格及参数设置网格与地形初始条件与边界条件数值求解方法输出设置模拟时间 波浪&#xff08;孤立波&#xff09;入射边界的时间序列.bnd文件模拟结果注…

HTML5 SVG: 探索矢量图形的新纪元

HTML5 SVG: 探索矢量图形的新纪元 引言 HTML5,作为现代网页开发的核心技术之一,极大地推动了网页内容的丰富性和交互性。在HTML5的众多特性中,SVG(可缩放矢量图形)发挥着重要作用,它允许开发者创建复杂、响应式的矢量图形,这些图形在任何分辨率下都能保持清晰。本文将…

服务器推送有几种方式,分别有什么优缺点

服务器推送主要有以下几种方式&#xff1a; 长轮询&#xff08;Long Polling&#xff09;&#xff1a; 优点&#xff1a; 相对简单易实现。能够在一定程度上减少无效的请求&#xff0c;降低服务器资源消耗。 缺点&#xff1a; 仍然存在一定的延迟。如果连接意外中断&#xff…

[吃瓜教程]南瓜书第4章决策树

1.决策树的算法原理 从逻辑角度&#xff0c;条件判断语句的组合&#xff1b;从几何角度&#xff0c;根据某种准则划分特征空间&#xff1b; 是一种分治的思想&#xff0c;其最终目的是将样本约分约纯&#xff0c;而划分的核心是在条件的选择或者说是**特征空间的划分标准 ** …

Mamba项目实战-Ubuntu

注&#xff1a;演示环境需要一个可用的cuda环境&#xff0c;可执行两个命令进行验证 1.nvidia-smi 2.nvcc -V 若出现正确输出&#xff0c;可继续博客以下的操作步骤&#xff0c;否则请确认是否已经安装或已配置环境变量&#xff0c;若未安装则转到博客&#xff1a;深度学习项…

mac安装达梦数据库

参考&#xff1a;mac安装达梦数据库​​​​​​ 实践如下&#xff1a; 1、下载达梦Docker镜像文件 同参考链接 2、导入镜像 镜像可以随便放在某个目录&#xff0c;相当于安装包&#xff0c;导入后就没有作用了。 查找达梦镜像名称&#xff1a;dm8_20240613_rev229704_x86…

第1章 人工智能的基础概念与应用导论

亲爱的读者朋友们&#xff0c;你们好&#xff01;欢迎来到这个充满神奇与奥秘的人工智能世界。我知道&#xff0c;对于很多人来说&#xff0c;人工智能&#xff08;AI&#xff09;可能是个既神秘又高大上的词汇&#xff0c;仿佛遥不可及&#xff0c;只存在于科幻电影或者顶级科…

Figma-ui设计学习APP Store

Figma汉化&#xff1a;Figma 中文社区_插件组件库,软件汉化教程 - Figma.Cool 选择Chorme汉化版离线包 插件安装&#xff1a; 打开浏览器安装扩展&#xff0c;解压加载进去即可。 打开标尺&#xff0c;设置左右内边距参考线&#xff08;左21 右356&#xff09;&#xff0c;wi…

Java使用分布式实现数据库读写分离

配置主从复制&#xff1a;在MySQL中&#xff0c;可以通过配置主从复制来实现数据同步。将一个节点作为主节点&#xff08;Master&#xff09;&#xff0c;其他节点作为从节点&#xff08;Slave&#xff09;。当主节点上的数据发生变化时&#xff0c;自动将变更内容同步到所有从…

JS面试题6——深拷贝和浅拷贝

它们都是用来复制的 1. 浅拷贝&#xff08;只复制引用&#xff0c;而未复制真正的值&#xff09; /* 简单赋值 */ var arr1 [a, b, c, d]; var arr2 arr1; /* Object.assign实现的也是浅拷贝 */ var obj1 {a:1, b:2} var obj2 Object.assign(obj1); 2. 深拷贝&#xff08;是…

C++ 预处理器定义

目录 一、什么是预处理器定义 二、常见用法 1. 条件编译 2. 宏定义 3. 防止重复包含 4. 动态链接库的导入导出 5、如何设置预处理器定义 一、什么是预处理器定义 预处理器定义&#xff08;Preprocessor Definitions&#xff09;在C和C编程中用于在编译过程中进行文本替换…

华为OCR识别技术 [C#]

了解华为OCR识别技术 光学字符识别&#xff08;OCR&#xff0c;Optical Character Recognition&#xff09;是一种将印刷或手写的文本字符转换为机器可读文本的技术。华为的OCR技术在业界以其高精度和高效率而著称&#xff0c;广泛应用于金融、教育、政府等多个领域。 OCR技术…

hive explain分析Hsql详解

Hive explain HIVE提供了EXPLAIN命令来展示一个查询的执行计划&#xff0c;可以帮助我们查看stage的依赖情况、排查数据倾斜、hive 调优等 使用语法如下&#xff1a; EXPLAIN [EXTENDED|CBO|AST|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION|ANALYZE] query explain 后面可以…