企业级高负载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类…...

[软件工程] 全局分析规格说明书模板
1 价值需求 描述目标系统的价值需求,可以附上商业模式画布。 1.1 利益相关者 描述目标系统的利益相关者,包括终端用户、企业组织、投资人等。 1.2 系统愿景 描述利益相关者共同达成一致的愿景,该愿景的描述需要对准企业的战略目标。 1.3 系统…...

【JAVASE】封装
⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 封装 1. 什么是封装2. 访问限定符3. 封装…...

Java多线程(四)
目录 一、线程的状态 1.1 观察线程的所有状态 1.2 线程状态和状态转移的意义 1.2.1 NEW、RUNNABLE、TERMINATED状态转换 1.2.2 WAITING、BLOCKED、TIMED_WAITING状态转换 1.2.3 yield()大公无私让出cpu 一、线程的状态 1.1 观察线程的所有状态 public class Demo9 {public st…...

Linux 文件系统预留空间
在一次磁盘打满的场景下,使用了df -h命令来查看磁盘使用率。 [roottest tmp]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 28G 0 28G 0% /dev tmpfs 28G 0 28G 0% /dev/shm tmpfs 28G 2.8G …...

篇一:单例模式:C++中的独一无二
篇一:“单例模式:C中的独一无二” 设计模式在软件开发中起到了至关重要的作用,其中单例模式是最为常用且基础的设计模式之一。单例模式确保一个类只有一个实例,并提供全局访问点,以保证系统中的某个对象只有唯一的存在…...

JVM之内存结构
1.程序计数器 定义:程序计数器(Program Counter Register)是JVM中一块较小的内存空间。解释器在解释JVM指令为机器码以供CPU执行时,会去程序计数器当中找到jvm指令的执行地址。 作用:记住下一条jvm指令的执行地址 特…...

C#实现结构体与字节流的相互转化
unity项目中,涉及到与C的相互通信,而通信接口为C封好的动态库。所以,传输信息时,需要向C端发送字节流信息。 对此,需将结构体数据转为字节流,其代码如下: public static byte[] StructToBytes(…...

用LangChain开源框架实现知识机器人
前言 Large Language Models (LLMs)在2020年OpenAI 的 GPT-3 的发布而进入世界舞台 。从那时起,他们稳步增长进入公众视野。 众所周知 OpenAI 的 API 无法联网,所以大家如果想通过它的API实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频…...

HCIP——前期综合实验
前期综合实验 一、实验拓扑二、实验要求三、实验思路四、实验步骤1、配置接口IP地址2、交换机配置划分vlan10以及vlan203、总部分部,骨干网配置OSPF分部总部骨干网 4、配置BGP建立邻居关系总部骨干网分部 5、发布用户网段6、将下一跳改为本地7、允许AS重复8、重发布…...

【2023年电赛】运动目标控制与自动追踪系统(E 题)最简单实现
本方案的思路是最简单的不涉及复杂算法:识别矩形框,标记矩形框,输出坐标和中心点,计算长度,控制舵机移动固定长度!仅供完成基础功能参考,不喜勿喷! # 实现运动目标控制与自动追踪系…...