当前位置: 首页 > news >正文

企业级高负载web服务器-Tomcat小项目

目录

  • web静态动态页面区别
  • 安装java环境
  • 安装Tomcat
    • 安装Tomcat包到目录
    • 查看Tomcat主目录结构
    • 查看Tomcat配置目录结构
    • Tomcat管理
    • Tomcat web管理功能
  • 部署jpress应用

web静态动态页面区别

静态页面:
在网站设计中,纯粹HTML格式的网页(可以包含图片、视频JS (前端功能实现)、CSS (样式)等)通常
被称为"静态网页"
特点:

  1. 处理文件类型:如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等2.
    地址中不含有问号"?"或&等特殊符号。

  2. 保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体

  3. 页内容是固定不变的,因此,容易被搜索引擎收录

  4. 网页页面交互性交差,因为不能与数据库配合

  5. 网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系
    统上返回数据(不做任何解析)

  6. 网页页面交互性交差,因为不能与数据库配合

  7. 保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体

动态页面:
请求响应信息,发给事务端进行处理,由服务端处理完成,将信息返回给客户端,生成的页面称为
动态页面
数据返回类型:.asp、.aspx、.php、.js、.do、.cgi等形式
特点:

  1. 网觅扩展名后缀常见为:.asp、.aspx、.php、.js、.do、.cgi

  2. 网页页面交互性强,可以与数据库配合

  3. 地址中含有问号"?"或 & 等特殊符号

  4. 不便于被搜索引擎收录

伪静态网页:
将动态页面内容转换为静态页面,去掉动态页面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静态动态页面区别 静态页面&#xff1a; 在网站设计中&#xff0c;纯粹HTML格式的网页&#xff08;可以包含图…...

《golang设计模式》第一部分·创建型模式-03-建造者模式(Builder)

文章目录 1. 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 角色 Builder&#xff08;抽象建造者&#xff09;&#xff1a;给出一个抽象接口&#xff0c;以规范产品对象的各个组成成分的建造。ConcreteBuilder&#xff08;具体建造者&#xff09;&a…...

git 忽略掉不需要的文件

第一步&#xff1a;创建.gitignore文件 touch .gitignore 第二步&#xff1a;使用vi编辑器 输入不需要的文件&#xff0c;或用通配符*来忽视一系列文件 效果&#xff1a;...

摄像机sd卡格式化怎么恢复数据?简单五步轻松解决

在使用摄像机时&#xff0c;有时不慎将SD卡格式化&#xff0c;导致重要的照片或视频文件丢失。然而&#xff0c;不必惊慌&#xff0c;本文将详细解释如何恢复被格式化的摄像机SD卡上的数据&#xff0c;可通过下面提供的五步&#xff0c;轻松解决数据丢失问题&#xff0c;以确保…...

1-4 AUTOSAR方法论--开发流程

目录 一、方法论 二、单个ECU开发流程 一、方法论 AUTOSAR 方法论&#xff08;AUTOSAR Methodology&#xff09;中车用控制器软件的开发涉及系统级、ECU 级的开发。 系统级&#xff1a;主要考虑系统功能需求、硬件资源、系统约束&#xff0c;然后建立系统架构&#xff1b; 输…...

Win10查询硬盘序列号

添加wmic命令 winR cmd命令 wmic diskdrive get model, serialnumber...

减少错误和重复工作:PDM系统的智能排错功能

减少错误和重复工作&#xff1a;PDM系统的智能排错功能 在产品开发和制造过程中&#xff0c;错误和重复工作常常是企业面临的挑战。这不仅浪费了宝贵的时间和资源&#xff0c;还可能导致产品质量下降和生产延误。PDM系统&#xff08;Product Data Management&#xff0c;产品数…...

【面试题】作用域面试题

作用域 全局作用域局部作用域&#xff08;函数里&#xff09;也称函数作用域块级作用域 {}包裹的 例如if for 括号&#xff08;&#xff09;也算 变量 全局变量 谁都能用&#xff0c;在函数内也可以局部变量&#xff0c;只能在该函数内用&#xff0c;如果这个函数嵌套了子函…...

08 定时器(下)

08 定时器&#xff08;下&#xff09; 本文内容 定时器处理非活动连接模块&#xff0c;分为定时方法与信号通知流程&#xff1b;定时器及其容器设计、定时任务的处理。 定时器设计&#xff0c;将连接资源与定时事件等封装起来&#xff0c;具体包括连接资源、超时时间和回调函…...

C++设计模式之适配器设计模式

文章目录 C适配器设计模式什么是适配器设计模式该模式有什么优缺点优点缺点 如何使用 C适配器设计模式 什么是适配器设计模式 适配器设计模式是一种行为型设计模式&#xff0c;它允许你将两个不兼容的接口组合在一起&#xff0c;使它们能够协同工作。 该模式有什么优缺点 优…...

Maven项目解决cannot resolve plugin maven-deploy-plugin:2.7

导入maven项目后&#xff0c;编辑的时候提示一些插件加载失败&#xff01;大概率是你的网络有问题&#xff0c;插件下载失败。 如下图&#xff1a;&#xff08;网络突然好了&#xff0c;我想截图但是没有复现&#xff0c;用网上找到的截图代替&#xff0c;明白意思就行&#x…...

Postgresql源码(110)分析dsm动态共享内存分配与共享内存mq实例

相关 《Postgresql源码&#xff08;90&#xff09;共享内存申请CreateSharedMemoryAndSemaphores》 《Linux内存映射函数mmap与匿名内存块》 《Linux共享内存与子进程继承》 0 概念 数据结构含义&#xff1a; dsm_segment&#xff08;动态共享内存段&#xff09;&#xff1a;…...

51单片机学习--蜂鸣器播放音乐

由原理图可知&#xff0c;蜂鸣器BEEP与P1_5 相关&#xff0c;但其实这个原理图有错&#xff0c;实测接的是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页面中而无需影响到组件 如 这是我的表格操作列按钮&#xff0c;需求是第四个按钮如果表格当前数据的is_execl字段为0则显示否则隐藏 这种条件判断很频繁 如果像之前一样给一个标识&#xff0c;页面多了就难以维护&#xff0c;而且判断条件如果不…...

C++ 多文件结构和编译预处理命令

1. C程序的一般组织结构 C源程序的结构基本上都是由3个部分构成&#xff1a;类的定义、类的成员的实现和主函数。因为所编写的程序比较小&#xff0c;所以这三个部分都写在了同一个文件当中。在规模比较大的项目中&#xff0c;往往需要多个源程序文件&#xff0c;每个源程序文…...

QT实现中英文键盘

使用Qt中实现中英文键盘&#xff0c;支持各种linux嵌入式设备。 实现思路&#xff1a;需要一个中文字体库&#xff0c;将字体库加载到一个Hash容器&#xff0c;字母和拼音作为key值&#xff0c;对应的中文作为value值。 核心代码&#xff1a; #include "UKeyBoard.h"…...

java中并发编程CompletableFuture和supplyAsync的用法

在Java中&#xff0c;并发编程可以使用CompletableFuture类来实现异步操作和并行任务。其中&#xff0c;supplyAsync是CompletableFuture类的一个静态方法&#xff0c;用于执行一个有返回值的异步任务。 supplyAsync方法的语法如下&#xff1a; public static <U> Comp…...

chrony服务器

目录 1.chrony简介 2.chrony安装配置 2.1 chrony安装及配置 非常重要&#xff1a;在配置之前&#xff0c;检查防火墙和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注入漏洞&#xff0c;该漏洞源于基于数据库的应用缺少对外部输入SQL语句的验证。攻击者可利用该漏洞执行非法SQL命令。 启动场景 漏洞利用 …...

K8s中的Service

Service 1.Service存在的意义&#xff1f; &#xff08;1&#xff09;pod注册在service里面&#xff0c;做服务发现使用 &#xff08;2&#xff09;定义一组Pod访问策略&#xff08;负载均衡&#xff09; 2.Pod和Service关系 通过service实现Pod的负载均衡 3.常用Service类…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...