企业级高负载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类…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...