企业级高负载web服务器-Tomcat小项目
目录
- web静态动态页面区别
- 安装java环境
- 安装Tomcat
- 安装Tomcat包到目录
- 查看Tomcat主目录结构
- 查看Tomcat配置目录结构
- Tomcat管理
- Tomcat web管理功能
- 部署jpress应用
web静态动态页面区别
静态页面:
在网站设计中,纯粹HTML格式的网页(可以包含图片、视频JS (前端功能实现)、CSS (样式)等)通常
被称为"静态网页"
特点:
-
处理文件类型:如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等2.
地址中不含有问号"?"或&等特殊符号。 -
保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体
-
页内容是固定不变的,因此,容易被搜索引擎收录
-
网页页面交互性交差,因为不能与数据库配合
-
网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系
统上返回数据(不做任何解析) -
网页页面交互性交差,因为不能与数据库配合
-
保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体
动态页面:
请求响应信息,发给事务端进行处理,由服务端处理完成,将信息返回给客户端,生成的页面称为
动态页面
数据返回类型:.asp、.aspx、.php、.js、.do、.cgi等形式
特点:
-
网觅扩展名后缀常见为:.asp、.aspx、.php、.js、.do、.cgi
-
网页页面交互性强,可以与数据库配合
-
地址中含有问号"?"或 & 等特殊符号
-
不便于被搜索引擎收录
伪静态网页:
将动态页面内容转换为静态页面,去掉动态页面uri地址中的? &字符,伪装成静态页面uri信息
动态转静态(开发来配合完成)
安装java环境
javajdk下载路径:http://www.oracle.com/technetwork/java/javase/archive-139210.html
我所提供的java安装包是
jdk-8u261-linux-x64.rpm
在虚拟机上创建一个安装java的路径:
mkdir -p /usr/java
安装到/usr/java:
rpm -i jdk-8u261-linux-x64.rpm
配置java环境变量
vim /etc/profile.d/java.shJAVA_HOME=/usr/java/jdk1.8.0_261-amd64
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
测试是否安装好:
[root@localhost ~]# source /etc/profile.d/java.sh
[root@localhost ~]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
安装Tomcat
Tomcat官网: http://tomcat.apache.org
我的Tomcat包是
apache-tomcat-8.5.70.tar.gz
安装Tomcat包到目录
[root@localhost ~]# tar -xvf /root/apache-tomcat-8.5.70.tar.gz -C /usr/local
软链接
ln -s /usr/local/apache-tomcat-8.5.70/ /usr/local/tomcat
导出环境变量
[root@localhost ~]# echo 'export TOMCAT_HOME=/usr/local/tomcat' >> /etc/profile.d/tomcat.sh
[root@localhost ~]# source /etc/profile.d/tomcat.sh
测试Tomcat是否安装好:
[root@localhost ~]# /usr/local/tomcat/bin/version.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.8.0_261-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/8.5.70
Server built: Aug 9 2021 16:17:14 UTC
Server number: 8.5.70.0
OS Name: Linux
OS Version: 3.10.0-1160.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_261-b12
JVM Vendor: Oracle Corporation
查看Tomcat主目录结构
tree -L 1 查看一级目录结构
[root@localhost tomcat]# cd /usr/local/tomcat/
[root@localhost tomcat]# tree -L 1
├── bin # 存放Tomcat的管理脚本
├── BUILDING.txt
├── conf # Tomcat配置文件存放目录
├── CONTRIBUTING.md
├── lib # web应用调用的jar包存放路径
├── LICENSE
├── logs # tomcat 日志存放目录,catalina.out 为主要输出日志
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp # 存放临时文件
├── webapps # web程序存放目录
└── work # 存放编译产生的.java 与 .class文件[root@localhost webapps]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# tree /usr/local/tomcat/webapps/ -L 1
/usr/local/tomcat/webapps/
├── docs # tomcat 帮助文档
├── examples # web应用实例
├── host-manager # 主机管理
├── manager # 管理
└── ROOT # 默认站点根目录
查看Tomcat配置目录结构
[root@localhost webapps]# cd /usr/local/tomcat/conf/
[root@localhost conf]# ll
total 224
-rw-------. 1 root root 13053 Aug 10 2021 catalina.policy
-rw-------. 1 root root 7661 Aug 10 2021 catalina.properties
-rw-------. 1 root root 1338 Aug 10 2021 context.xml
-rw-------. 1 root root 1149 Aug 10 2021 jaspic-providers.xml
-rw-------. 1 root root 2313 Aug 10 2021 jaspic-providers.xsd
-rw-------. 1 root root 3916 Aug 10 2021 logging.properties
-rw-------. 1 root root 7589 Aug 10 2021 server.xml # tomcat 主配置文件
-rw-------. 1 root root 2756 Aug 10 2021 tomcat-users.xml # tomcat 管理用户配置文件
-rw-------. 1 root root 2558 Aug 10 2021 tomcat-users.xsd
-rw-------. 1 root root 171879 Aug 10 2021 web.xml
Tomcat管理
先关闭防火墙和selinux
启动Tomcat:
[root@localhost conf]# /usr/local/tomcat/bin/startup.sh
查看网页:http://192.168.190.132:8080/

Tomcat web管理功能
需要注意的是不要在生产环境中使用
配置tomcat-users.xml 文件
在<tomcat-users></tomcat-users> 中间写入如下,这个大概就是让指定的用户拥有这些功能,如 script等
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="admin-gui,manager-gui,managerjmx,manager-script,manager-status,admin-script"/>
配置允许访问Host Manager
允许访问Host Manager,添加如下:
[root@localhost webapps]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="^.*$" />
关闭再 重启:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
测试:
输入密码和账号去到后台

部署jpress应用
获取jpress应用包
我的是:
jpress-web-newest.war
将该包放在目录下:
/usr/local/tomcat/webapps/
浏览器访问:
http://192.168.190.132:8080/jpress-web-newest/install
出现以下页面:

在创建一个数据库以及授权的用户:
[root@localhost ~]# mysql -uroot -p123 -e "create database jpress DEFAULT CHARACTER SET utf8;"
[root@localhost ~]# mysql_upgrade -uroot -p123 # 要输入这个,不然报错
[root@localhost ~]# mysql -uroot -p123 -e "grant all on jpress.* to jpress@'localhost' identified by '123456';"
最后输入用户名密码点击下一步然后创建网站名字和超级管理账户就好了

相关文章:
企业级高负载web服务器-Tomcat小项目
目录 web静态动态页面区别安装java环境安装Tomcat安装Tomcat包到目录查看Tomcat主目录结构查看Tomcat配置目录结构Tomcat管理Tomcat web管理功能 部署jpress应用 web静态动态页面区别 静态页面: 在网站设计中,纯粹HTML格式的网页(可以包含图…...
《golang设计模式》第一部分·创建型模式-03-建造者模式(Builder)
文章目录 1. 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 角色 Builder(抽象建造者):给出一个抽象接口,以规范产品对象的各个组成成分的建造。ConcreteBuilder(具体建造者)&a…...
git 忽略掉不需要的文件
第一步:创建.gitignore文件 touch .gitignore 第二步:使用vi编辑器 输入不需要的文件,或用通配符*来忽视一系列文件 效果:...
摄像机sd卡格式化怎么恢复数据?简单五步轻松解决
在使用摄像机时,有时不慎将SD卡格式化,导致重要的照片或视频文件丢失。然而,不必惊慌,本文将详细解释如何恢复被格式化的摄像机SD卡上的数据,可通过下面提供的五步,轻松解决数据丢失问题,以确保…...
1-4 AUTOSAR方法论--开发流程
目录 一、方法论 二、单个ECU开发流程 一、方法论 AUTOSAR 方法论(AUTOSAR Methodology)中车用控制器软件的开发涉及系统级、ECU 级的开发。 系统级:主要考虑系统功能需求、硬件资源、系统约束,然后建立系统架构; 输…...
Win10查询硬盘序列号
添加wmic命令 winR cmd命令 wmic diskdrive get model, serialnumber...
减少错误和重复工作:PDM系统的智能排错功能
减少错误和重复工作:PDM系统的智能排错功能 在产品开发和制造过程中,错误和重复工作常常是企业面临的挑战。这不仅浪费了宝贵的时间和资源,还可能导致产品质量下降和生产延误。PDM系统(Product Data Management,产品数…...
【面试题】作用域面试题
作用域 全局作用域局部作用域(函数里)也称函数作用域块级作用域 {}包裹的 例如if for 括号()也算 变量 全局变量 谁都能用,在函数内也可以局部变量,只能在该函数内用,如果这个函数嵌套了子函…...
08 定时器(下)
08 定时器(下) 本文内容 定时器处理非活动连接模块,分为定时方法与信号通知流程;定时器及其容器设计、定时任务的处理。 定时器设计,将连接资源与定时事件等封装起来,具体包括连接资源、超时时间和回调函…...
C++设计模式之适配器设计模式
文章目录 C适配器设计模式什么是适配器设计模式该模式有什么优缺点优点缺点 如何使用 C适配器设计模式 什么是适配器设计模式 适配器设计模式是一种行为型设计模式,它允许你将两个不兼容的接口组合在一起,使它们能够协同工作。 该模式有什么优缺点 优…...
Maven项目解决cannot resolve plugin maven-deploy-plugin:2.7
导入maven项目后,编辑的时候提示一些插件加载失败!大概率是你的网络有问题,插件下载失败。 如下图:(网络突然好了,我想截图但是没有复现,用网上找到的截图代替,明白意思就行&#x…...
Postgresql源码(110)分析dsm动态共享内存分配与共享内存mq实例
相关 《Postgresql源码(90)共享内存申请CreateSharedMemoryAndSemaphores》 《Linux内存映射函数mmap与匿名内存块》 《Linux共享内存与子进程继承》 0 概念 数据结构含义: dsm_segment(动态共享内存段):…...
51单片机学习--蜂鸣器播放音乐
由原理图可知,蜂鸣器BEEP与P1_5 相关,但其实这个原理图有错,实测接的是P2_5 下面这个代码就是以500HZ的频率响500ms的例子 sbit Buzzer P2^5;unsigned char KeyNum; unsigned int i;void main() {while(1){KeyNum Key();if(KeyNum){for(i …...
【Vue组件eval方法的使用】
Vue页面中条件可以放在当前vue页面中而无需影响到组件 如 这是我的表格操作列按钮,需求是第四个按钮如果表格当前数据的is_execl字段为0则显示否则隐藏 这种条件判断很频繁 如果像之前一样给一个标识,页面多了就难以维护,而且判断条件如果不…...
C++ 多文件结构和编译预处理命令
1. C程序的一般组织结构 C源程序的结构基本上都是由3个部分构成:类的定义、类的成员的实现和主函数。因为所编写的程序比较小,所以这三个部分都写在了同一个文件当中。在规模比较大的项目中,往往需要多个源程序文件,每个源程序文…...
QT实现中英文键盘
使用Qt中实现中英文键盘,支持各种linux嵌入式设备。 实现思路:需要一个中文字体库,将字体库加载到一个Hash容器,字母和拼音作为key值,对应的中文作为value值。 核心代码: #include "UKeyBoard.h"…...
java中并发编程CompletableFuture和supplyAsync的用法
在Java中,并发编程可以使用CompletableFuture类来实现异步操作和并行任务。其中,supplyAsync是CompletableFuture类的一个静态方法,用于执行一个有返回值的异步任务。 supplyAsync方法的语法如下: public static <U> Comp…...
chrony服务器
目录 1.chrony简介 2.chrony安装配置 2.1 chrony安装及配置 非常重要:在配置之前,检查防火墙和selinux是否关闭 3.将chrony配置为其他主机的时间服务器 3.1 修改chrony配置文件 4.chronyc命令 1.chrony简介 chrony 是开源的遵循网络时间协议&…...
春秋云镜 CVE-2021-24762
春秋云镜 CVE-2021-24762 WordPress Plugin Perfect Survey 注入 靶标介绍 WordPress Perfect Survey plugin在1.5.2之前版本存在SQL注入漏洞,该漏洞源于基于数据库的应用缺少对外部输入SQL语句的验证。攻击者可利用该漏洞执行非法SQL命令。 启动场景 漏洞利用 …...
K8s中的Service
Service 1.Service存在的意义? (1)pod注册在service里面,做服务发现使用 (2)定义一组Pod访问策略(负载均衡) 2.Pod和Service关系 通过service实现Pod的负载均衡 3.常用Service类…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
