麒麟操作系统服务架构保姆级教程(十三)tomcat环境安装以及LNMT架构

   如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

        之前咱们学习了LNMP架构,但是PHP对于技术来说确实是老掉牙了,PHP的市场占有量越来越少了,我认识一个10年的PHP开发工程师,十年工资从15k到今天的6k,现在比较主流的是Java+前端实现界面访问,但是Java需要特定的web服务进行解析展示今天咱们学习tomcat的安装部署,话不多说直接开干~~~~

目录

一、安装java环境,配置tomcat

二、部署Java环境的Tomcat部署zrlog项目

三、搭建LNMT架构(https+nginx负载均衡+mysql数据库+tomcat服务)

四、配置session会话保持

💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

一、安装java环境,配置tomcat

安装java环境yum install java -y
或者上传rpm包
rpm -ivh  jdk....rpm
查看是否安装成功
[root@web01 ~]# rpm -qa|grep jdk
jdk1.8-1.8.0_181-fcs.x86_64
安装tomcat(下载 Tomcat、解压、启动 )
Tomcat官网: https://tomcat.apache.org/
[root@web01 ~]#wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.tar.gz
[root@web01 ~]#mkdir /soft
[root@web01 ~]#tar xf  apache-tomcat-9.0.98.tar.gz  -C /soft/
[root@web01 ~]#ln -s /soft/apache-tomcat-9.0.98/ /soft/tomcat
[root@web01 ~]# /soft/tomcat/bin/startup.sh     # 启动
[root@web01 ~]# /soft/tomcat/bin/shutdown.sh    # 停止
# 8080 对外提供服务的端口    # 8005 关闭Tomcat端口
[root@web01 ~]# netstat -lntp |grep java
tcp6    0    0 127.0.0.1:8005      :::*           LISTEN    6867/java       
tcp6    0    0 :::8080            :::*           LISTEN    6867/java
配置systemc方式启动
[root@web01 soft]#vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Server
After=network.target remote-fs.target nss-lookup.target
​
[Service]
Type=forking
ExecStart=/soft/tomcat/bin/startup.sh
ExecStop=/soft/tomcat/bin/shutdown.sh
ExecRestart=/soft/tomcat/bin/shutdown.sh  && sleep2  && /soft/tomcat/bin/star
tup.sh
​
[Install]
WantedBy=multi-user.target
重载tomcat,加入开机自启
[root@web01 ~]# systemctl daemon-reload
[root@web01 ~]#systemctl enable  tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
tomcat配置文件
tomcat软件目录结构:
bin          ---主要包含启动和关闭tomcat的脚本(启停java脚本依赖jar包文件)
conf            ---tomcat配置文件的目录(站点配置:server.xml)
lib           ---tomcat运行时需要加载的jar包
logs            ---tomcat日志存放位置
temp            ---tomcat临时存放文件路径
webapps       ---tomcat默认站点目录
work            ---tomcat运行时产生的缓存文件
​
关闭防火墙
[root@web01 ~]#systemctl stop firewalld.service iptables
[root@web01 ~]#systemctl disable firewalld.service iptables
​
​
测试:添加一个虚拟主机
[root@web01 conf]#vim server.xml<Host name="www.yuxiaopi.cn"  appBase="/code/tomcat"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="yuxiaopi" suffix=".log"pattern="%h %l %u %t &quot;%r&quot; %s %b" /></Host>
mkdir -p /code/tomcat/ROOT
[root@web01 conf]#echo 学运维找小屁 >/code/tomcat/ROOT/index.html
[root@web01 conf]#vim /code/tomcat/ROOT/index.html
<?xml version="1.0" encoding="UTF-8"?>
学运维找小屁

二、部署Java环境的Tomcat部署zrlog项目

定义虚拟主机
[root@web01 conf]#vim server.xml 
<Host name="zrlog.yunzhongzi.com"  appBase="/code/zrlog"    #添加域名和软件存放的位置unpackWARs="true" autoDeploy="true">
​<Valve className="org.apache.catalina.valves.AccessLogValve" 
directory="logs"prefix="zrlog" suffix=".log"     #修改日志文件的名称pattern="%h %l %u %t &quot;%r&quot; %s %b" /></Host>
配置环境
[root@web01 conf]#mkdir /code/zrlog/ROOT -p
[root@web01 conf]#cd /code/zrlog
将准备好的ROOT.war文件拖拽至zrlog(环境里可以自动解压war包,如果没解压可以重启tomcat服务)
进入10.0.0.51服务器新建zrlog数据库
[root@db01 ~]#mysql -uroot -pqy123.com
MariaDB [(none)]> create database zrlog;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| she                |
| test               |
| wp                 |
| zrlog              |
+--------------------+
windows端做完hosts解析
访问zrlog.yunzhongzi.com创建即可

三、搭建LNMT架构(https+nginx负载均衡+mysql数据库+tomcat服务)

配置nfs
web01操作如下
[root@web01  ~]# scp -rp /soft  10.0.0.8:/
[root@web01  ~]# scp -rp /code/zrlog  10.0.0.8:/code/zrlog
[root@web01 ~]# scp /usr/lib/systemd/system/tomcat.service  172.16.1.8:/usr/lib/systemd/system/tomcat.service
web02操作如下
[root@web02 ~]#ln -s /soft/apache-tomcat-9.0.98/ /soft/tomcat
[root@web02 ~]# systemctl daemon-reload
[root@web02 ~]# systemctl start tomcat
[root@web02 ~]# systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
[root@web02 ~]# yum install nfs-utils -y
配置nfs共享目录
[root@nfs  ~]# cat /etc/exports
[root@nfs ~]#vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/code/wp 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/code/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
新建挂载的目录
[root@nfs code]#mkdir zrlog
修改目录权限
[root@nfs code]#chown -R www.www zrlog
[root@nfs code]#ll
total 0
drwxr-xr-x 2 www www  6 May  9 22:39 she
drwxr-xr-x 3 www www 18 Apr 27 20:25 wp
drwxr-xr-x 2 www www  6 May 10 17:17 zrlog
重启nfs
[root@nfs code]#systemctl restart nfs
挂载(部署playbook的时候写入开机自动挂载)
[root@web02 image]#mount -t nfs 172.16.1.31:/code/zrlog /code/zrlog/ROOT/attached/
配置负载均衡
[root@lb01 conf.d]#vim zrlog.conf 
upstream zrlog {server 10.0.0.7:8080;server 10.0.0.8:8080;
}
server {listen 443 ssl;server_name zrlog.yunzhongzi.com;ssl_certificate ssl_key/server.crt;ssl_certificate_key ssl_key/server.key;
​location / {proxy_pass http://zrlog;include proxy_params;}
}
server {listen 80;server_name zrlog.yunzhongzi.com;return 302 https://$server_name$request_uri;
}
密钥文件已经存在服务器直接引用即可(但记得调整web端的服务的属主属组为www)

四、配置session会话保持

db01上的redis会话保持功能已经安装完成并开启
[root@web01 ~]# wget https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/download/4.0/tomcat-cluster-redis-session-manager.zip
1.解压zip包   
[root@web01 ~]# unzip tomcat-cluster-redis-session-manager.zip
2.拷贝jars到tomcat的/lib目录中
[root@web01 ~]# cp tomcat-cluster-redis-session-manager/lib/* /soft/tomcat/lib/
3.拷贝conf下的redis.properties文件,到tomcat的conf文件
[root@web01 ~]# cp tomcat-cluster-redis-session-manager/conf/redis-data-cache.properties /soft/tomcat/conf/
4.将配置文件中连接redis地址修改为如下地址即可
[root@web01 ~]# vim /soft/tomcat/conf/redis-data-cache.properties
redis.hosts=172.16.1.51:6379
5.添加如下两行至tomcat/conf/context.xml  (添加在</Context> 上一行 )
[root@web01 ~]# vim /soft/tomcat/conf/context.xml
<Valve className="tomcat.request.session.redis.SessionHandlerValve" />
<Manager className="tomcat.request.session.redis.SessionManager" />
注意: 修改完一台直接和另外一台进行无差异同步rsync --delete
修改完成后重启Tomcat

今天的LNMT架构就介绍到这里了,接下来介绍一下nginx的优化和防火墙~~~


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 

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

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

相关文章

游戏AI,让AI 玩游戏有什么作用?

让 AI 玩游戏这件事远比我们想象的要早得多。追溯到 1948 年&#xff0c;图灵和同事钱伯恩共同设计了国际象棋程序 Turochamp。之所以设计这么个程序&#xff0c;图灵是想说明&#xff0c;机器理论上能模拟人脑能做的任何事情&#xff0c;包括下棋这样复杂的智力活动。 可惜的是…

Golang的文件处理优化策略

Golang的文件处理优化策略 一、Golang的文件处理优化策略概述 是一门效率高、易于编程的编程语言&#xff0c;它的文件处理能力也非常强大。 在实际开发中&#xff0c;需要注意一些优化策略&#xff0c;以提高文件处理的效率和性能。 本文将介绍Golang中的文件处理优化策略&…

数据结构学习记录-队列

队列的基本概念 1、队列是操作受限的线性表 2、队头&#xff1a;允许删除的一端 3、队尾&#xff1a;允许插入的一端 4、空队列&#xff1a;不含任何元素的空表 5、特点&#xff1a;先进先出、FIFO 6、应用场景&#xff1a; 栈&#xff1a;解决括号匹配&#xff1b;逆波…

java知识框架

面试1 基础篇 如何理解OOP面向对象编程&#xff1f; 对现有事物进行抽象&#xff0c;具有继承、封装、多态的特征。 继承&#xff1a;从已有的类也就是父类进行继承信息。 封装&#xff1a;对数据和数据操作的方法绑定起来&#xff0c;通过方法进行访问或者操作数据。 多态…

JDBC实验测试

一、语言和环境 实现语言&#xff1a;Java。 环境要求&#xff1a;IDEA2023.3、JDK 17 、MySQL8.0、Navicat 16 for MySQL。 二、技术要求 该系统采用 SWING 技术配合 JDBC 使用 JAVA 编程语言完成桌面应用开发。 三、功能要求 某电商公司为了方便客服查看用户的订单信…

小程序获取微信运动步数

1、用户点击按钮&#xff0c;在小程序中触发getuserinfo方法&#xff0c;获取用户信息 <scroll-view class"scrollarea" scroll-y type"list"><view class"container"><button bind:tap"getLogin">获取</button&…

macOS 安装JDK17

文章目录 前言介绍新特性下载安装1.下载完成后打开downloads 双击进行安装2.配置环境变量3.测试快速切换JDK 小结 前言 近期找开源软件&#xff0c;发现很多都已经使用JDK17springboot3 了&#xff0c;之前的JDK8已经被替换下场&#xff0c;所以今天就在本机安装了JDK17&#…

Windows电脑桌面记录日程安排的提醒软件

在快节奏的现代生活中&#xff0c;工作效率成为了衡量个人能力的重要标准之一。然而&#xff0c;日常办公中常常会遇到各种琐事和任务&#xff0c;如果没有合理安排日程&#xff0c;很容易陷入混乱&#xff0c;导致效率低下。因此&#xff0c;做好日程安排对于日常工作至关重要…

MFC 使用 32位带Alpha通道的位图

最近需要做一个MFC界面上的图片,众所周知,MFC 好像只支持 bmp 格式的! 先看我的原始24位图片,RGB 三个颜色各占8位 (256色), 所以是24位。 如果放到MFC界面上,是这个很丑的效果 它是一个正方形图片,周围的白色可以看见。 解下来,进入今天的主题: 32位带 Alpha 通…

Ubuntu22部署MySQL5.7详细教程

Ubuntu22部署MySQL5.7详细教程 一、下载MySQL安装包二、安装MySQL三、启动MySQL 检查状态登录MySQL 四、开启远程访问功能 1、允许其他主机通过root访问数据库2、修改配置文件&#xff0c;允许其他IP通过自定义端口访问 五、使用Navicat连接数据库 默认情况下&#xff0c;Ubun…

大模型 | AI驱动的数据分析:利用自然语言实现数据查询到可视化呈现

【本文作者&#xff1a;擎创科技资深产品专家 布博士】 在当今AI驱动的时代&#xff0c;数据分析已成为各行各业不可或缺的能力。然而&#xff0c;传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能&#xff0c;这对非技术背景的业务人员来说是一个不小的挑…

C++ ——— 模拟实现 vector 类

目录 vector 类的框架 无参数的构造函数 析构函数 获取有效数据个数 获取容量 重载 [] 运算符 可读可写版本 只可读版本 扩容 尾插 实现迭代器 可读可写版本 只可读版本 自定义设置size长度和内容 在任意位置插入 删除任意位置的数据 赋值重载 vector 类的框…

Git处理冲突详解

文章目录 Git处理冲突详解一、引言二、冲突产生的原因三、解决冲突的步骤1. 手动解决冲突1.1 查看冲突文件1.2 编辑冲突文件1.3 提交解决冲突 2. 使用合并工具解决冲突 四、使用示例五、总结 Git处理冲突详解 一、引言 在团队协作开发中&#xff0c;Git冲突是不可避免的。当多…

GS论文阅读--GeoTexDensifier

前言 本文是一个关于高斯致密化策略对高斯地图进行优化&#xff0c;他主要关注了几何结构和纹理信息。我最近对于高斯点的分布比较感兴趣&#xff0c;因为高斯点的分布决定了之后重建质量的好坏&#xff0c;初始化高斯很重要&#xff0c;但之后的维护需要致密化与修建策略&…

【云原生布道系列】第三篇:“软”饭“硬”吃的计算

1 虚拟化技术定义 首先援引一段《虚拟化技术发展编年史》中针对虚拟化技术的定义&#xff1a;在计算机科学中&#xff0c;虚拟化技术&#xff08;Virtualization&#xff09;是一种资源管理&#xff08;优化&#xff09;技术&#xff0c;将计算机的各种物理资源&#xff08;例如…

Java虚拟机面试题:内存管理(中)

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

Linux容器(初学了解)

目录 一、容器 1.1、容器技术 1.2、容器和虚拟机之间的差异 1.3、Rootless 和 Rootful 容器 1.4、设计基于容器的架构 1.5、容器管理工具 1.6、容器镜像和注册表 1.7、配置容器注册表 1.8、使用容器文件构建容器镜像 二、部署容器 2.1、Podman 实用程序 2.2、安装容…

代码随想录_字符串

字符串 344.反转字符串 344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。 思路: 双指针 代…

Visual Studio Community 2022(VS2022)安装方法

废话不多说直接上图&#xff1a; 直接上步骤&#xff1a; 1&#xff0c;首先可以下载安装一个Visual Studio安装器&#xff0c;叫做Visual Studio installer。这个安装文件很小&#xff0c;很快就安装完成了。 2&#xff0c;打开Visual Studio installer 小软件 3&#xff0c…

PostgreSQL的学习心得和知识总结(一百六十六)|深入理解PostgreSQL数据库之\watch元命令的实现原理

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…