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

ops/2025/1/22 22:48:35/

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

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

目录

java%E7%8E%AF%E5%A2%83%EF%BC%8C%E9%85%8D%E7%BD%AEtomcat-toc" name="tableOfContents" style="margin-left:40px">一、安装java环境,配置tomcat

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

tomcat%E6%9C%8D%E5%8A%A1%EF%BC%89-toc" name="tableOfContents" style="margin-left:40px">三、搭建LNMT架构(https+nginx负载均衡+mysql数据库+tomcat服务)

四、配置session会话保持

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

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

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

java%E7%8E%AF%E5%A2%83%EF%BC%8C%E9%85%8D%E7%BD%AEtomcat" name="%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85java%E7%8E%AF%E5%A2%83%EF%BC%8C%E9%85%8D%E7%BD%AEtomcat" style="background-color:transparent">一、安装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创建即可

tomcat%E6%9C%8D%E5%8A%A1%EF%BC%89" name="%E4%B8%89%E3%80%81%E6%90%AD%E5%BB%BALNMT%E6%9E%B6%E6%9E%84%EF%BC%88https%2Bnginx%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%2Bmysql%E6%95%B0%E6%8D%AE%E5%BA%93%2Btomcat%E6%9C%8D%E5%8A%A1%EF%BC%89">三、搭建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.ppmy.cn/ops/152302.html

相关文章

【STL】list 双向循环链表的使用介绍

STL中list容器的详细使用说明 一.list的文档介绍二. list的构造函数三.list中的访问与遍历操作四.list中的修改操作4.1 list中的各种修改操作4.2 list的迭代器失效问题 五.list中的其他一些操作 一.list的文档介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器…

如何在idea中搭建SpringBoot项目

如何在idea中快速搭建SpringBoot项目 目录 如何在idea中快速搭建SpringBoot项目前言一、环境准备&#xff1a;搭建前的精心布局 1.下载jdk &#xff08;1&#xff09;安装JDK&#xff1a;&#xff08;2&#xff09;运行安装程序&#xff1a;&#xff08;3&#xff09;设置安装…

如何使用python技术爬取下载百度文库文档?

使用 Python 爬取百度文库文档需要通过分析网页结构和接口请求来实现。以下是一个基于搜索结果的实现方法&#xff0c;适用于爬取百度文库中的文档内容&#xff1a; 第一部分&#xff1a;获取百度文库文档 实现步骤 获取文档 ID 和基本信息 通过文档的 URL 获取文档 ID&…

C# 的 NLog 库高级进阶

一、引言 在 C# 开发的广袤天地中&#xff0c;日志记录宛如开发者的 “千里眼” 与 “顺风耳”&#xff0c;助力我们洞察应用程序的运行状态&#xff0c;快速定位并解决问题。而 NLog 库&#xff0c;无疑是日志记录领域中的璀璨明星&#xff0c;以其强大的功能、灵活的配置和出…

【蓝桥杯】43691.拉马车

题目描述 小的时候&#xff0c;你玩过纸牌游戏吗&#xff1f;有一种叫做"拉马车"的游戏&#xff0c;规则很简单&#xff0c;却很吸引小朋友。   其规则简述如下&#xff1a;   假设参加游戏的小朋友是 A 和 B &#xff0c;游戏开始的时候&#xff0c;他们得到的随…

【Linux】环境变量

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;Linux &#x1f339;往期回顾&#x1f339;&#xff1a;【Linux】进程优先级与进程切换 &#x1f516;流水不争&#xff0c;争的是滔滔不 一、环境变量的定义二、命令…

macOS查看当前项目的 tree 结构

文章目录 使用 tree 命令 macOS 系统默认不包含 tree 命令 使用 tree 命令 使用homebrew自动安装脚本/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装 tree&#xff1a;brew install tree查看项目的 tree 结构&#…

Spring Boot安全加固:基于Spring Security的权限管理

引言 在当今数字化时代&#xff0c;随着企业信息化程度的不断提高&#xff0c;应用程序的安全性成为了一个至关重要的问题。Spring Boot 作为 Java 生态系统中广泛使用的开发框架&#xff0c;以其简洁、高效的特点深受开发者的喜爱。然而&#xff0c;仅仅依靠 Spring Boot 的默…