Thingworx高可用集群部署(九)-Tomcat集群部署

主机:10.10.10.62、10.10.10.63、10.10.10.64、10.10.10.65

用户:root

创建目录

mkdir -p /data/tomcat9.0

解压安装包

cd /data/soft/pkgs
tar -xf apache-tomcat-9.0.48.tar.gz

移动到指定目录

mv apache-tomcat-9.0.48 /data/tomcat9.0/9.0.48

定义环境变量

vim /etc/environment
export JAVA_HOME=/usr/java/jdk-11.0.11
export CATALINA_HOME=/data/tomcat9.0/9.0.48
source /etc/environment

转到文件夹

cd /data/tomcat9.0/9.0.48

添加用户和用户组并更改权限

groupadd -r tomcat9.0
useradd -r -d /data/tomcat9.0 -g tomcat9.0 -s /bin/false tomcat9.0 
chown -R tomcat9.0:tomcat9.0 /data/tomcat9.0

赋予sudoer权限

vi /etc/sudoers
#root ALL=(ALL) ALL下添加
tomcat9.0 ALL=(ALL) ALL

更改bin/、 lib/和webapps/ 的所有者和访问权限

chown -Rh tomcat9.0:tomcat9.0 bin/ lib/ webapps/
chmod 775 bin/ lib/ webapps/

更改usr/share/tomcat9.0/9.0.xx的所有者和访问权限

chown -R tomcat9.0:tomcat9.0 /data/tomcat9.0/9.0.48
chmod -R 775 /data/tomcat9.0/9.0.48

更改conf/的所有者和访问权限

chown -Rh root:tomcat9.0 conf/
chmod -R 640 conf
chown -R tomcat9.0:tomcat9.0 /data/tomcat9.0/9.0.48
chmod -R 777 /data/tomcat9.0/9.0.48

更改logs/、 temp/和work/ 的访问权限

chown -R tomcat9.0:tomcat9.0 logs/ temp/ work/
chmod 760 logs/ temp/ work/

配置context

消对context.xml 中的Manager元素的注释,以防止会话在重新启动后持续存在。在文本编辑器(以 root 用户身份)中打开/data/tomcat9.0/9.0.xx/conf/context.xml并删除<Manager pathname="" />注释。

vim /data/tomcat9.0/9.0.48/conf/context.xml<!--<Manager pathname="" />
--><Manager pathname="" />

安装jsvc

将 Tomcat 设置为启动时启动的服务。首先,如果您的系统上尚未安装 JSVC(以 root 身份)

cd /data/tomcat9.0/9.0.48/bin/tar xvfz commons-daemon-native.tar.gzcd commons-daemon-*-native-src/unix​yum -y install gcc gcc-c++ make net-tools telnet unzip patch wget openssl openssl-devel pcre-devel./configure --with-java=$JAVA_HOMEmakecp jsvc ../..

配置Tomcat服务

touch /usr/lib/systemd/system/tomcat.service

在文本编辑器中(以 root 用户身份)打开/usr/lib/systemd/system/tomcat.service并粘贴以下内容

vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target[Service]
Type=forking
PIDFile=/var/run/tomcat.pid
Environment=HTTP_PORT=8888
Environment=IGNITE_WORK_DIR=/data/ignite/work
Environment=IGNITE_NO_SHUTDOWN_HOOK=true
Environment=CATALINA_PID=/var/run/tomcat.pid
Environment=JAVA_HOME=/usr/java/jdk-11.0.11
Environment=CATALINA_HOME=/data/tomcat9.0/9.0.48
Environment=CATALINA_BASE=/data/tomcat9.0/9.0.48
Environment=CATALINA_OPTS=ExecStart=/data/tomcat9.0/9.0.48/bin/jsvc \-Dcatalina.home=${CATALINA_HOME} \-Dcatalina.base=${CATALINA_BASE} \-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dserver -XX:+UseNUMA \-XX:+UseG1GC -Dfile.encoding=UTF-8 \-Xms32G \-Xmx32G \-Djava.library.path=${CATALINA_BASE}/webapps/Thingworx/WEB-INF/extensions \-cp ${CATALINA_HOME}/bin/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \-user tomcat9.0 \-java-home ${JAVA_HOME} \-pidfile /var/run/tomcat.pid \-errfile ${CATALINA_HOME}/logs/catalina.out \-outfile ${CATALINA_HOME}/logs/catalina.out \$CATALINA_OPTS \org.apache.catalina.startup.Bootstrap[Install]
WantedBy=multi-user.target

配置tomcat setenv

在Tomcat中创建一个新文件sr/share/tomcat9.0/9.0.xx/bin 文件名为setenv.sh,并添加以下内容到文件中

touch /data/tomcat9.0/9.0.48/bin/setenv.sh
vim /data/tomcat9.0/9.0.48/bin/setenv.sh
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/data/tomcat9.0/9.0.48/webapps/Thingworx/WEB-INF/extensions"chown tomcat9.0:tomcat9.0 /data/tomcat9.0/9.0.48/bin/setenv.sh
chmod +x /data/tomcat9.0/9.0.48/bin/setenv.sh

设置 Tomcat开机自启动

systemctl daemon-reload
systemctl enable tomcat.service

配置tomat错误页面

在Tomcat安装位置,打开CATALINA_HOME/conf/web.xml替换默认错误页面(默认为stacktrace)。将以下内容放在web-app标签中(在welcome-file-list标签之后):

vim $CATALINA_HOME/conf/web.xml
<error-page><exception-type>java.lang.Throwable</exception-type><location>/error.jsp</location></error-page>

配置tomcat端口

在 Tomcat 安装位置,打开CATALINA_HOME/conf/server.xml。在<Host> </Host>标签中添加以下内容:

vim $CATALINA_HOME/conf/server.xml

端口:8888

<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />

注释JSP

在Tomcat安装位置,打开conf/server.xml,搜索下面一行。如果找到,将其注释掉并保存文件: < Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

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

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

相关文章

如何把PNG图片转换成CAD图纸DWG格式

环境&#xff1a; CAD2021 PNG图片 问题描述&#xff1a; 如何把PNG图片转换成CAD图纸DWG格式 解决方案&#xff1a; 将PNG图像转换为CAD文件&#xff08;如DXF或DWG格式&#xff09;是设计和工程领域中常见的需求之一。幸运的是&#xff0c;有几种工具和软件可以帮助完成…

【考研数学】跟张宇,一看就会,一做就废,换老师有用吗?

宇哥的1000题其实很多同学在刷的时候都会觉得有点吃力&#xff0c;特别是基础不是很牢固一类的 我的感觉是如果基础很差的按照宇哥的做法可能会没有什么思路&#xff0c;基础题可能有的都分析不出来 张宇的30讲还是不太适合零基础的考研党去听...因为宇哥整体节奏较快&#x…

阿里云CentOS7安装ZooKeeper单机模式

前提条件 阿里云CentOS7安装好jdk&#xff0c;可参 hadoop安装 的jdk安装部分 下载 [hadoopnode1 ~]$ cd softinstall [hadoopnode1 softinstall]$ wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz 解压 [hadoopnode1 …

全网最全的幻兽帕鲁服务器价格表查询系统,一键报价

2024年全网最全的幻兽帕鲁服务器租用价格表&#xff0c;阿里云幻兽帕鲁游戏服务器26元1个月、腾讯云32元一个月、京东云26元一个月、华为云24元1个月&#xff0c;阿腾云atengyun.com整理最新幻兽帕鲁专用4核16G、8核16G、8核32G游戏服务器租用价格表大全&#xff1a; 阿里云幻…

智驾芯片“独角兽”地平线流血冲刺上市,三年累计亏损47亿元

3月26日&#xff0c;Horizon Robotics&#xff08;下称“地平线”&#xff09;向港交所递交招股书&#xff0c;高盛、摩根士丹利、中信建投国际为其联席保荐人。 据介绍&#xff0c;成立于2015年的地平线是一家人工智能计算平台公司&#xff0c;专注于为智能汽车提供高级辅助驾…

前端请求传参格式

一、格式类型 form-data application/x-www-form-urlencoded application/json text/xml 一、form-data multipart/form-data&#xff1a; 窗体数据被编码为一条消息&#xff0c;页上的每个控件对应消息中的一个部分&#xff0c;这个一般文件上传时用。 当method为post时候&a…

算法---动态规划练习-8(打家劫舍2)

打家劫舍2 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 首先&#xff0c;给定一个非负整数数组 nums&#xff0c;其中 nums[i] 表示第 i 家的财物价值。 定义两个辅助数组 f 和 g&#xff0c;长度都为 n&#xff08;n 是…

【FedCoin: A Peer-to-Peer Payment System for Federated Learning】

在这篇论文中&#xff0c;我们提出了FedCoin&#xff0c;一个基于区块链的点对点支付系统&#xff0c;专为联邦学习设计&#xff0c;以实现基于Shapley值的实际利润分配。在FedCoin系统中&#xff0c;区块链共识实体负责计算SV&#xff0c;并且新的区块是基于“Shapley证明”&a…

自定义类型:【结构体】

我们知道C语言中有许多的类型&#xff0c;比如char&#xff0c;short&#xff0c;int等等类型。像是这些C语言本身就支持的类型叫做内置类型&#xff0c;但是有一些复杂对象&#xff0c;只有这些类型是完全不够的。比如人&#xff0c;或者一本书。那么我们就可以自己定义一些类…

day 5|中间件

本节目标&#xff1a; 设计并实现 Web 框架的中间件(Middlewares)机制。 实现通用的Logger中间件&#xff0c;能够记录请求到响应所花费的时间&#xff0c;代码约50行 中间件是啥 我们的框架不可能理解所有的业务&#xff0c;框架只是一个空空的躯体&#xff0c;他有什么具…

mysql--事务四大特性与隔离级别

事务四大特性与隔离级别 mysql事务的概念事务的属性事务控制语句转账示例 并发事务引发的问题脏读脏读场景 不可重复读幻读幻读场景 事务的隔离级别读未提交读已提交可重复读&#xff08;MySQL默认&#xff09; 总结 mysql事务的概念 事务就是一组操作的集合&#xff0c;他是一…

多线程之并发变成高级面试题-2024

有三个线程T1,T2,T3,如何保证顺序执行 使用 join() 方法&#xff1a; 可以在每个线程内部使用 join() 方法来等待前一个线程执行完成。具体操作是在线程 T2 的 run() 方法中调用 T1.join()&#xff0c;在线程 T3 的 run() 方法中调用 T2.join()。这样可以确保 T1 在 T2 之前执…

鸿蒙OS开发实例:【手撸服务卡片】

介绍 服务卡片指导文档位于“开发/应用模型/Stage模型开发指导/Stage模型应用组件”路径下&#xff0c;说明其极其重要。 本篇文章将分享实现服务卡片的过程和代码 准备 请参照[官方指导]&#xff0c;创建一个Demo工程&#xff0c;选择Stage模型 鸿蒙OS开发更多内容↓点击…

图像识别在工业检测中的应用

图像识别技术在工业检测中的应用非常广泛&#xff0c;它通过自动化的图像处理和分析&#xff0c;提高了生产效率、保证了产品质量&#xff0c;并降低了人力成本。以下是图像识别在工业检测中的一些主要应用领域&#xff1a; 缺陷检测&#xff1a;在制造业中&#xff0c;图像识…

面试经典150题【111-120】

文章目录 面试经典150题【111-120】67.二进制求和190.颠倒二进制位191.位1的个数136.只出现一次的数字137.只出现一次的数字II201.数字范围按位与5.最长回文子串97.交错字符串72.编辑距离221.最大正方形 面试经典150题【111-120】 六道位运算&#xff0c;四道二维dp 67.二进制…

PCB损耗来源

信号经过PCB板会产生损耗&#xff0c;主要包括导体损耗&#xff0c;介电损耗和辐射损耗 导体损耗&#xff1a;导体损耗是由于电流流动过程中产生电阻损耗而发热。 介电损耗&#xff1a;介电损耗是由于电场通过介质时分子的交替极化和晶格碰撞造成的。 辐射损耗&#xff1a;辐…

YOLOv9 实战指南:打造个性化视觉识别利器,从零开始训练你的专属测试集

论文地址&#xff1a;YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information GitHub&#xff1a;WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information (github.com)…

定时备份mysql数据库数据--mysqldump版

前言&#xff1a;mysqldump是MySQL自带的逻辑备份工具&#xff0c;可以将整个数据库或者指定的表格导出为一个SQL脚本文件&#xff0c;可以用于数据库备份。 1、编写shell脚本 # 备份文件保存路径 backup_dir/data/mysqlbackup # 当前时间 current_timedate %Y-%m-%d-%H-%M-%S…

git 更改仓库地址

背景&#xff1a; 项目本来在A仓库进行保管&#xff0c;研发已经开发一段时间了&#xff0c;现在切换到了新的仓库B&#xff0c;研发本地如何将仓库切换到B 解决&#xff1a; # 查看远端地址 git remote -v # 查看远端仓库名 git remote # 重新设置远程仓库 git remote s…

Linux---多线程(下)

前情提要&#xff1a;Linux---多线程(上) 七、互斥 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入临…