tomcat服务器相关搭建

news2024/9/25 1:16:20

文章目录

  • web应用服务器tomcat
    • Tomcat功能及介绍
      • 配置tomcat服务器
      • 生成tomcat启动文件
    • nginx反向代理
    • session共享服务器

web应用服务器tomcat

Tomcat功能及介绍

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器起始于SUN 公司的一个Servlet的参考实现项目 Java Web Server,开发者是 James Duncan Davidson, 在1999年,将项目贡献给了apache软件基金会(ASF),和ASF现有的项目 JServ 合并,并开源成为顶级 项目 Tomcat 仅仅实现了Java EE规范中与Servlet、JSP相关的类库,是JavaEE不完整实现。 1999年发布初始版本是Tomcat 3.0,实现了Servlet 2.2 和 JSP 1.1规范。 Tomcat 4.x发布时,内建了Catalina(Servlet容器)和 Jasper(JSP engine)等 当前 Tomcat 的正式版本已经更新到 10.0.x 版本,但当前企业中主流版本为 8.x 和 7.x

配置tomcat服务器

1、安装jdk1.8.0环境
[root@tomcat1 ~]# yum install -y java-1.8.0-openjdk.x86_64

2、安装、启动tomcat
[root@tomcat ~]# tar zxf apache-tomcat-9.0.91.tar.gz -C /usr/local/
[root@tomcat ~]# ln -s /usr/local/apache-tomcat-9.0.91/ /usr/local/tomcat
[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh

3、查看端口
[root@tomcat ~]# netstat -antlupe | grep java
tcp6       0     0 :::8080                 :::*                   LISTEN     0 
        68636     32887/java

4、访问测试

image-20240821140049011

生成tomcat启动文件

1、生成tomcat主配置文件
[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat.conf
JAVA_HOME=/etc/alternatives/jre_openjdk

2、生成启动文件
[root@tomcat ~]# useradd -s /sbin/nologin -M tomcat
[root@tomcat ~]# chown -R tomcat.tomcat /usr/local/tomcat/

[root@tomcat ~]# vim /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target

3、重载守护进程
[root@tomcat ~]# systemctl daemon-reload
[root@tomcat ~]# systemctl enable --now tomcat

nginx反向代理

image-20240821200516888

浏览器每次向服务器发送请求时,服务器利用session技术随机生成sessionID发送给浏览器,浏览器将此值保存至cookie中,通过cookie、session机制来减轻服务器的压力

cookie值保存时间短,服务器端如果故障,即使Session被持久化了,但是服务没有恢复前都不能使用这些SessionID

nginx服务器相关配置
[root@nginx ~]# cat /usr/local/nginx/conf.d/vhost.conf 
upstream tomcat {
	hash $cookie_JSESSIONID;		hash浏览器cookie
	server 192.168.84.140:8080;
	server 192.168.84.141:8080;
}

server {
	listen 80;
	server_name var.nginx.com;
	root /www/web;
	try_files $uri.html $uri $uri/index.html /error/default.html;	
	location ~ \.jsp$ {
		proxy_pass http://192.168.84.141:8080;
	}
}

memcache安装配置
[root@tomcat ~]# yum install memcached -y

[root@tomcat ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 0.0.0.0,::1"

[root@tomcat ~]# systemctl enable --now memcached
[root@tomcat ~]# netstat -antlupe | grep memcache
tcp       0     0 0.0.0.0:11211           0.0.0.0:*               LISTEN     
980       97815     34711/memcached

session共享服务器

image-20240821202748562

将sessionID存储至memcache中实现高可用

1、安装相关软件包
[root@tomcat2 ~]# ls /usr/local/tomcat/lib/
kryo-3.0.3.jar
asm-5.2.jar
objenesis-2.6.jar
reflectasm-1.11.9.jar
minlog-1.3.1.jar
kryo-serializers-0.45.jar
msm-kryo-serializer-2.3.2.jar
memcached-session-manager-tc9-2.3.2.jar
spymemcached-2.12.3.jar
memcached-session-manager-2.3.2.jar

2、修改tomcate配置
[root@tomcat1 ~]# cat /usr/local/tomcat/conf/context.xml
<Manager pathname="" />
    -->
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="m1:192.168.84.140:11211,m2:192.168.84.141:11211"
      failoverNodes="m1"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />


[root@tomcat2 ~]# cat /usr/local/tomcat/conf/context.xml
<Manager pathname="" />
    -->
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="m1:192.168.84.140:11211,m2:192.168.84.141:11211"
      failoverNodes="m2"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />

3、重启服务
[root@tomcat2 ~]# systemctl stop tomcat
[root@tomcat2 ~]# systemctl start tomcat

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

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

相关文章

香橙派AIPro开发板安装PyQt5 aarch64

香橙派AIPro开发板安装PyQt5 参考 开发板信息 官网开发板信息 软件环境信息 1、安装依赖环境 sudo apt-get install cmake gcc g pip3 install --upgrade pip pip3 install wheel setuptools sudo apt-update sudo apt-get install qt5-default sudo apt-get install qtd…

为什么互联网上要设立防火墙?WAF又是什么?

防火墙&#xff08;英语&#xff1a;Firewall&#xff09;技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备&#xff0c;帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障&#xff0c;以保护用户资料与信息安全性的一种技术。 防火墙技术的功能主要在于及…

python库(21):

1 TextBlob简介 TextBlob 是一个基于 Python 的文本处理库&#xff0c;能够让基础的自然语言处理任务变得异常简单。 它提供了一个简单直观的 API&#xff0c;让你能够轻松执行词性标注、名词短语提取、情感分析、文本分类和关键词提取等功能。 值得一提的是&#xff0c;Tex…

计算机网络计算题【408】——里昂视频

计算机网络【408】计算题 计算机网络概述【17题】【18题】甘特图【19题】甘特图【20题】【21题】 通信基础【14】求最大传输速率使用两个公式【27】【28】【29】差分曼彻斯特【30】[21]重点 p14 通信基础T31 流量控制与可靠传输机制T21 选择重传协议[GBN]:SR [22][24]***⭐【25…

linux系统使用 docker 来部署web环境 nginx+php7.4 并配置称 docker-compose-mysql.yml 文件

Docker是一个开源的容器化平台&#xff0c;旨在简化应用程序的创建、部署和管理。它基于OS-level虚拟化技术&#xff0c;通过将应用程序和其依赖项打包到一个称为容器的标准化单元中&#xff0c;使得应用程序可以在任何环境中快速、可靠地运行。 Docker的优势有以下几个方面&a…

通用定时器,输入捕获

这个图片主要看评论 这个是定时器输入捕获的基本配置步骤&#xff0c;主要也是看评论 注意&#xff1a;输入捕获开了两个中断&#xff0c;一个是捕获中断&#xff0c;只要有上升沿或者下降边沿或者双边沿&#xff0c;&#xff08;主要看设置的捕获什么边沿&#xff09;&#x…

【Python 千题 —— 基础篇】图形的面积(圆形)

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 题目描述 编写一个面向对象的程序,定义一个 Circle 类,该类有一个属性 radius(圆的半径),并具有一个方法 area() 来计算圆的面积。请根据以下要求实…

IM项目:进阶版即时通讯项目---文件存储和消息转发

文章目录 文件传输服务基本功能模块划分流程图实现逻辑代码实现 消息转发功能设计模块划分获取转发目标和消息处理代码实现 文件传输服务 基本功能 文件的上传文件的下载 模块划分 基于gflags进行参数和配置文件的解析基于spdlog进行日志输出基于etcd进行服务注册基于brpc进…

关于超长字符串/文本对应的数据从excel导入到PL/SQL中的尝试

问题&#xff1a; 1.字符串太长 2.str绑定之的结尾null缺失 将csv文件导入到PL/SQL表中存在的一些问题 1.本来我是需要将exceL上的几十条数据导入到PL/SQL数据库的一张表中&#xff0c;结果我花了许多时间 去导入。 想想一般情况下也就几十条数据&#xff0c;直接复制粘贴就…

并发编程之----线程池ThreadPoolExecutor,Excutors的使用及其工作原理

当前&#xff1a;并发编程之----线程池ThreadPoolExecutor,Excutors的使用及其工作原理 Redis高级----主从、哨兵、分片、脑裂原理-CSDN博客 计算机网络--面试知识总结一 计算机网络-----面试知识总结二 计算机网络--面试总结三&#xff08;Http与Https&#xff09; 计算机…

代码随想录 | 回溯算法总结

在代码随想录算法 | 回溯算法先导知识 | 题目分类&#xff0c;理论基础-CSDN博客中我们详细的介绍了回溯算法的理论知识&#xff0c;不同于教科书般的讲解&#xff0c;这里介绍的回溯法的效率&#xff0c;解决的问题以及模板都是在刷题的过程中非常实用&#xff01; 回溯是递归…

黑神话悟空|风灵月影 35项修改器下载

《黑神话&#xff1a;悟空》是由游戏科学公司制作的一款动作角色扮演游戏&#xff0c;于2024年8月20日正式发售。游戏改编自中国著名的神魔小说《西游记》&#xff0c;玩家在游戏中将扮演一位“天命人”&#xff0c;踏上一条充满危险与惊奇的西游之路。下面为带来这款游戏的修改…

AI人像换脸!Reactor插件本地部署方法(含报错解决及整合包)

​ Reactor插件是什么&#xff1f;有什么用&#xff1f; Reactor 是一个用于 Stable Diffusion 的换脸插件&#xff0c; 主要功能是实现图片中的精确换脸。它可以自动检测并替换图片中的多个面部&#xff0c;适用于多种场景&#xff0c;比如生成逼真的图像或者进行复杂的图片处…

InternVL多模态模型训练教程,流程图识别检测LLM-v1版本。检测流程图,输出基础图形bounding box

文章目录 项目介绍求一个star环境准备模型下载多模态大语言模型 (InternVL 2.0) 构造训练数据集单张图片&#xff1a;Grounding / Detection Data 开始训练 项目介绍 本篇文章主要是讲如何训练InternVL2模型&#xff0c;详细信息可以看我的Github repo&#xff0c;欢迎star&am…

ffplay源码分析(二)结构体VideoState

在多媒体的世界里&#xff0c;播放器是离用户最近的一环&#xff0c;它将数字编码的音频和视频数据转化为生动的视听体验。ffplay 播放器作为一款强大而备受关注的工具&#xff0c;其背后隐藏着一系列精妙的结构体&#xff0c;它们协同工作&#xff0c;共同完成了从数据读取、解…

Unity3D 遍历预制体

Unity3D 遍历预制体进行批量化处理。 遍历预制体 有时候&#xff0c;我们需要对一些预制体资源进行批量化处理&#xff0c;如果每一个预制体都手动处理&#xff0c;就会耗费很多时间精力&#xff0c;也容易出错。 我们可以写一个脚本遍历预制体&#xff0c;对预制体进行修改…

单HTML文件集成vue3+ElementPlus的使用

1、新建一个HTML文件 2、HTML文件引用vue3.js 3、引用elementplus.js和elementplus.css 4、Vue初始化ElementPlus 5、页面中可以使用ElementPlus啦 HTML文件例子如下&#xff1a; <html><head><meta charset"UTF-8"><script src"./js/vue…

NSTimer 引发的循环引用(内存泄漏)| NSTimer强引用

在iOS中使用NSTimer(定时器)不当会引发内存泄漏. NSTimer 有多种创建方式,具体可以看这位朋友的文章:https://blog.51cto.com/u_16099225/6716123 我这里主要讲使用NSTimer 会引发的内存泄漏情况以及解决方法: 内存泄漏出现的场景: VC A push 到VC B, VC B里启动了一个 NST…

Java基础之方法与数组

方法 在Java中&#xff0c; 方法的定义包括方法的修饰符、返回类型、方法名、参数列表和方法体。方法既能够模块化的组织代码(当代码规模比较复杂的时候)。也做到代码被重复使用&#xff08;一份代码可以在多个位置使用&#xff09;。Java中的方法类似与C语言中的函数&#xf…

Java SpringBoot实战教程:如何一步步构建保险业务管理与数据分析系统

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…