Tomcat基础及与Nginx实现动静分离,搭建高效稳定的个人博客系统

目录

引言

一、TOMCAT基础功能

(一)自动解压war包

(二)状态页

1.登录状态页

2.远程登录

(三)服务管理界面

(四)Host虚拟主机

1.设置虚拟主机

2.建立站点目录与文件

二、实现动静分离与负载均衡

(一)配置nginx代理服务器

(二)建立访问数据文件

(三)使用客户机进行访问

三、使用tomcat搭建博客

(一)安装mysql

1.修改mysql密码

2.建立数据库用户并授予权限

(二)建立博客


引言

在互联网世界中,网站的性能优化和架构设计至关重要,特别是对于内容驱动型的个人博客而言,合理的资源分配和请求处理策略能够显著提升用户体验。其中,“动静分离”是一种常见的服务器部署策略,它将动态内容(如PHP、Java Servlet等生成的内容)和静态内容(如HTML、CSS、JavaScript、图片等文件)分由不同的服务器或服务进行处理,从而提高整体性能。本文将详细介绍如何使用Apache Tomcat与Nginx配合,实现动静分离,并搭建一个高性能的个人博客系统。

一、TOMCAT基础功能

(一)自动解压war包

在配置文件中讲到,当接受到请求后,会匹配符合要求的Host,在配置文件中的Host只有一个,且规定了自动解压war包

自动解压war包

.war:WebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如jsp,html,配置文件等

.jar:EJB类文件的打包压缩类zip格式文件,,包括很多的class文件, 网景公司发明

.rar:资源适配器类打包文件,目前已不常用

.ear:企业级WebApp打包,目前已不常用

传统应用开发测试后,通常打包为war格式,这种文件部署到Tomcat的webapps目录下,并默认会自动

建立两个文件,使用jar命令,压缩文件,并且以.war结尾

移动到该目录下后,会自动解压,形成目录文件

这个主站点目录比较特殊,在访问的URL没有任何上下文的情况下,默认以webapps/ROOT目录文主站点,如果有其它目录则以具体URL为主

例如,如果直接访问your_sever/,则它的默认路径为webapps/ROOT/idnex文件

如果指定访问目录的话,如data,那么它的访问路径为webapps/data/*

同在webapps目录下的两个目录下的访问资源文件内容不一样

(二)状态页

tomcat状态页是Apache Tomcat服务器提供的一个管理界面,通过这个页面可以查看和监控Tomcat运行时的状态信息。

状态页的相关文件也存放在webapps目录下

可以使用浏览器来访问进行查看

也可以直接输入/manager/status进行查看。但是会被拒绝访问

1.登录状态页

需要去修改配置文件,打开conf目录下tomcat-users.xml文件,并跳转到最后


 

#这些为注释的信息。它定义了Tomcat服务器中的角色(roles)和用户(users),以及这些
#用户所归属的角色。(角色的含义相当于用户组)<role rolename="tomcat"/> 
#定义了一个名为 "tomcat" 的角色,这个角色可以对应于Tomcat服务器预定义的一些权限,比如
#访问管理界面或部署应用等。<role rolename="role1"/> 
#定义了一个名为 "role1" 的自定义角色,可以根据实际需求赋予特定权限。<user username="tomcat" password="<must-be-changed>" roles="tomcat"/> 
#定义了一个用户名为 "tomcat" 的用户,并设置了初始密码(这里需要在实际使用时替换为强密码)
#该用户归属于 "tomcat" 角色,因此拥有与该角色关联的所有权限。<user username="both" password="<must-be-changed>" roles="tomcat,role1"/> 
#定义了一个用户名为 "both" 的用户,同样设置了初始密码。这个用户同时属于 "tomcat" 
#和 "role1" 两个角色,因此拥有这两个角色合并后的所有权限。<user username="role1" password="<must-be-changed>" roles="role1"/> 
#定义了一个仅属于 "role1" 角色的用户。

了解这些信息后,将从拒绝界面复制的信息粘贴到配置文件的末尾,而后重启服务,使配置文件生效

这个时候,就可以使用虚拟机本机的浏览器去访问回环地址登录状态页

登录之后,就可以看到java虚拟机(JVM)的一些状态信息

PS Eden Space
'这是年轻代(Young Generation)的一部分,主要用于存储新创建的对象。当前已使用的内
存大小为210.02 MB,占其总容量(225.50 MB)的约93%。'PS Old Gen
'这是老年代(Old Generation),存放长期存活或晋升过来的对象。当前已使用的内存大小
为25.57 MB,占其总容量(629.50 MB)的4%。'PS Survivor Space
'同样是年轻代的一部分,用于保存在年轻代中经历过一次GC但尚未被回收的对象。当前已使用的
内存大小为7.54 MB,占其总容量(45.00 MB)的16%。'Code Cache
'非堆内存区域,用于存储JIT编译后的机器码。当前已使用的内存大小为12.97 MB,占其最大可
扩展容量(240.00 MB)的5%。'Compressed Class Space
'另一个非堆内存区域,当类空间过大时,经过压缩的类会被存放到此区域以节省内存。当前已使
用的内存大小为6.58 MB,占其最大容量(1024.00 MB)的0%,这里的“0%”可能是显示错误,因
为已经使用了6.58 MB的空间。'Metaspace
'从Java 8开始取代了永久代(PermGen),用于存储类元数据信息。这里显示的最大容量为“-0.00 MB”,
这意味着Metaspace的大小可以动态调整,不受固定上限限制;当前已使用的内存大小为54.99 MB'

2.远程登录

修改完上面的配置文件后,只能使用本机去登录回环地址才可以访问,这也是在配置文件里就已经规定的,想要使用IP地址登录,还需要去修改manager目录下的META-INF/context.xml文件

在配置文件中,添加允许通过的字段,修改完毕后重新启动服务

比如允许192.168.83段的地址去登录查看状态页,就在allow后面加上192.168.83.\d(点前面

的"\表示转义符)

这个时候再去使用该网段的地址去登录就可以了

由于状态页比较重要,在设置登录权限时需要注意哪些地址可以访问,一般不建议开启远程登录

(三)服务管理界面

Apache Tomcat的Manager App界面是一个基于Web的管理工具,用于管理和监控部署在Tomcat服务器上的Web应用程序。访问路径为/manager/html

通过Manager App,管理员可以执行以下操作:

  1. 部署应用:上传WAR文件到Tomcat服务器,并部署为新的Web应用程序。

  2. 重新加载应用:无需停止整个服务器或卸载再部署,即可更新已部署应用的内容。

  3. 启动和停止应用:控制单个Web应用的启动与停止状态。

  4. 删除应用:从Tomcat服务器中移除已经部署的Web应用程序。

  5. 查看应用列表和状态:列出所有部署在Tomcat服务器上的Web应用程序及其当前运行状态(如是否正在运行、部署路径等信息)

(四)Host虚拟主机

Apache Tomcat中的虚拟主机(Virtual Hosts)是指在同一台物理服务器上通过不同的域名或IP地址来运行多个独立的Web应用程序。这种方式使得一个Tomcat实例可以为多个网站提供服务,每个网站对应一个虚拟主机。

1.设置虚拟主机

需要在配置文件(conf/server.xml)中添加Host信息

2.建立站点目录与文件

使用客户端进行访问

二、实现动静分离与负载均衡

准备五台服务器与一台客户机

客户机192.168.83.1
NGINX代理服务器192.168.83.50
NGINXweb服务器1192.168.83.30
NGINXweb服务器2192.168.83.40
TOMCAT应用服务器1192.168.83.60
TOMCAT应用服务器2192.168.83.100

(一)配置nginx代理服务器

1.首先定义好地址池

默认轮询权重为1:1

2.区分不同类型的文件进行代理

(二)建立访问数据文件

tomcat服务默认访问的界面为安装路径下的/webapps/ROOT/的index.jsp文件,为了区分,自定义一个index.jsp文件内容

(三)使用客户机进行访问

三、使用tomcat搭建博客

(一)安装mysql

安装好tomcat后安装mysql数据库,由于本地yum的mysql安装包版本比较老旧,所以不推荐直接使用yum安装,可以自己搭建一个yum仓库

而后再使用yum安装,需要注意安装包的名字不要输错:

yum -y install mysql-community-server

1.修改mysql密码

在之前介绍LNAP的时候,就将讲解过如何修改密码,但是之前是编译安装,只是安装一些基础功能,一些安全环境与优化,没有yum做的全,比如初始密码,编译安装的时候初始密码为空,而yum安装是有初始密码的

可以使用grep过滤错误日志中的关键字进行查看

这个密码是随机生成的,有时候会有一些特殊字符,在使用该密码登录的时候,需要使用引号,将密码引起来

登录进去之后,可以修改密码,或者直接使用mysqladmin -u root -p password修改密码

但在修改密码前需要了解validate_password_policy 和 validate_password_length这两个参数

validate_password_policy: 这个参数用于指定密码验证策略的严格程度。其可选值包括0、1和2,默认值根据MySQL版本的不同可能会有所变化。值的含义如下:

0:只检查密码长度。
1(默认):检查密码长度以及字符种类(数字、小写字母、大写字母和特殊字符)。
2:最严格的策略,除了长度和字符种类外,还增加了其他复杂度要求,例如禁止使用常见密码。

validate_password_length 设置全局密码最小长度

2.建立数据库用户并授予权限

(二)建立博客

需要将博客系统的压缩包放在tomcat服务默认的站点目录下

此时就可以使用浏览器去访问博客系统了

输入创建的数据库、用户及密码

设置网站名称信息与创建管理员用户

登录管理员账号

这个时候就可以进行编辑管理文章等一些列操作了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【IC前端虚拟项目】inst_buffer子模块DS与RTL编码

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 需要说明一下的是,在我所提供的文档体系里,并没有模块的DS文档哈,因为实际项目里我也不怎么写DS毕竟不是每个公司都和HISI一样对文档要求这么严格的。不过作为一个培训的虚拟项目,还是建议在时间充裕…

6U VPX全国产飞腾D2000/8核+复旦微FPGA信息处理主板

产品特性 产品功能 飞腾计算平台&#xff0c;国产化率100% VPX-MPU6503是一款基于飞腾D2000/8核信息处理主板&#xff0c;采用由飞腾D2000处理器飞腾X100桥片的高性能计算机模块&#xff0c;双通道16G贴装内存&#xff0c;板载128G 固态SSD&#xff1b;预留固态盘扩展接口&…

Image Fusion via Vision-Language Model【文献阅读】

阅读目录 文献阅读AbstractIntroduction3. Method3.1. Problem Overview3.2. Fusion via Vision-Language Model 4. Vision-Language Fusion Datasets5. Experiment5.1Infrared and Visible Image Fusion 6. Conclusion个人总结 文献阅读 原文下载&#xff1a;https://arxiv.or…

ScanDomainEuorg:批量查询 eu.org 域名注册情况(附带源码)

引言 eu.org 很长时间都没有审批了&#xff0c;但是我觉得只是时间长短问题&#xff0c;早晚会再次审批的。 既然如此&#xff0c;大可以未雨绸缪一般&#xff0c;趁着大家对其“失望”的时间段&#xff0c;看看有哪些好看的前缀没有被注册。 原理 灵感来源于 域名 .eu.org…

Python推导式大全与实战:精通列表、字典、集合和生成器推导式【第115篇—python:推导式】

Python推导式大全与实战&#xff1a;精通列表、字典、集合和生成器推导式 Python语言以其简洁、优雅的语法而闻名&#xff0c;其中推导式是其独特之处之一。推导式是一种在一行代码中构建数据结构的强大方式&#xff0c;它涵盖了列表、字典、集合和生成器。本篇博客将全面介绍…

解决 MySQL 未运行但锁文件存在的问题

查看mysql状态时&#xff0c;显示错误信息"ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists"。 解决步骤 1、检查 MySQL 进程是否正在运行 在继续之前&#xff0c;我们首先需要确定 MySQL 进程是否正在运行。我们可以使用以下命令检查…

BUGKU bp

打开环境&#xff0c;他提示了弱密码top1000&#xff0c;随便输入密码123抓包爆破 发现长度都一样&#xff0c;看一下响应发现一段js代码&#xff0c;若r值为{code: bugku10000}&#xff0c;则会返回错误&#xff0c;通过这一句“window.location.href success.php?coder.cod…

JAVAEE初阶 JVM(二)

垃圾回收和双亲委派模型 1.双亲委派模型2.垃圾回收机制(1) 识别垃圾1.引用计数2.可达性分析 (2) 销毁垃圾1.标记清除2.复制算法3.标记整理 3.分代回收 1.双亲委派模型 描述了如何查找.class文件的策略. 同时JVM中有专门进行类加载的操作,有一个模块,叫做类加载器. 上述就是为了…

数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第二、三章 关系数据库和标准语言SQL2.1 关系2…

论文阅读-CheckFreq:频繁、精细的DNN检查点操作。

论文名称&#xff1a;CheckFreq: Frequent, Fine-Grained DNN Checkpointing. 摘要 训练深度神经网络(DNNs)是一项资源密集且耗时的任务。在训练过程中&#xff0c;模型在GPU上进行计算&#xff0c;重复地学习权重&#xff0c;持续多个epoch。学习到的权重存在GPU内存中&…

视频在线压缩

video2edit 一款免费的在线视频编辑软件&#xff0c;可以进行视频合并、视频剪辑、视频压缩以及转换视频格式等。 链接地址&#xff1a;在线视频编辑器和转换器 - 编辑&#xff0c;转换和压缩视频文件 打开视频压缩页面&#xff0c;上传想要压缩视频&#xff0c;支持MP4&…

智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护)

智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护) 边缘小站的主要功能是管理用户在线下部署的整机柜设施&#xff0c;一个边缘小站关联一个华为云指定的区域和一个用户指定的场地&#xff0c;相关的资源运行状况监控等。 边缘计算 迈入5G和AI时代&#xff0c;新…

Matlab 机器人工具箱 Link类

文章目录 1 Link类1.1 机械臂Link类1.2 构造函数1.3 信息/显示方法1.4 转换方法1.5 操作方法1.6 测试方法1.7 重载操作1.8 属性(读/写)1.9 例子2 Link.Link2.1 创建机器人连杆对象2.2 OPTIONS2.3 注意2.4 旧语法2.5 例子3 Link的其他函数3.1 Link.A3.2 Link.char3.3 Link.displ…

RFID(Radio Frequency Identification)技术笔记

一、RFID的介绍 RFID&#xff0c;全称为Radio Frequency Identification&#xff0c;即射频识别技术&#xff0c;也常被称为电子标签或无线射频识别。它是一种非接触式的自动识别技术&#xff0c;通过射频信号自动识别目标对象并获取相关数据&#xff0c;识别过程无需人工干预&…

Netty01NIO

NIO基础 NIO &#xff1a;non-blocking io 非阻塞 IO 笔记 www.zgtsky.top 网课&#xff1a;黑马Netty 三大组件 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从 channel 将数据读入 buffer&#xff0c;也可以…

电子电气架构——汽车DoIP诊断通信建立流程

电子电气架构——汽车DoIP诊断通信建立流程 我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的潜力。他们往往会…

Infineon_TC264智能车代码初探及C语言深度学习(一)

本篇文章记录我在智能车竞赛中&#xff0c;对 Infineon_TC264 这款芯片的底层库函数的学习分析。通过深入地对其库函数进行分析&#xff0c;C语言深入的知识得以再次在编程中呈现和运用。故觉得很有必要在此进行记录一下。 目录 ​编辑 一、代码段 1、枚举类型 2、结构体 …

ChatGPT支持下的PyTorch机器学习与深度学习技术应用

近年来&#xff0c;随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生&#xff0c;人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术&#xff0c;在许多行业都取得了颠覆性的成果。另外&#xff0c;近年来&#xff0c;Pytorch深度学习框架受…

WordPress分类目录ID怎么看?如何查找WordPress标签ID?

在WordPress网站中&#xff0c;我们需要判断某篇文章是否属于某个分类目录&#xff0c;或者是否拥有某个标签&#xff0c;那么就需要用到分类目录ID和标签ID&#xff0c;那么WordPress分类目录ID怎么看&#xff1f;如何查找WordPress标签ID&#xff1f;下面boke112百科就跟大家…

SQL 术语:Join 中的 Build 和 Probe 是什么意思?

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…