tomcat搭建个人博客 实现动静分离

jar包相关

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

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

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

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

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

#conf/server.xml中文件配置
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

状态页

点击进去是无法查看的,需要再配置文件中进行修改

打开该文件

将改成复制的内容贴进去

此时仍然不能打开,因为只能本地打开,虚拟机内是可以看到的

开启远程登陆,便可以访问

cd /usr/local/tomcat/webapps/manager/META-INF

vim context.xml

重启一下  systemctl restart tomcat

这个是看jvm内存使用情况

这能控制项目的状态

这个仍需要配置

依旧是 /usr/local/tomcat/conf/tomcat-users.xml

还需要在修改配置文件

切换到 /usr/local/tomcat/webapps/host-manager/META-INF

修改 context.xml 文件

systemctl restart tomcat

将8005端口修改

注意:0代表随机端口  -1代表无效端口

防止别人通过远程连接关闭tomcat 8005端口

配置虚拟主机

Context配置

Context作用:

  • 路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能

  • 应用独立配置,例如单独配置应用日志、单独配置应用访问控制

#映射指定路径
<Context path="/test" docBase="/data/test" reloadable="true" />
#映射站点的根目录
<Context path="/" docBase="/data/website" reloadable="true" />
#还可以添加日志等独立的配置
<Context path="/test" docBase="/data/test" reloadable="true" ><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_test_log" suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Context>

说明:

  • path:指的是访问的URL路径,如果path与appBase下面的子目录同名,context的docBase路径优先更高

  • docBase:可以是磁盘文件的绝对路径,也可以是相对路径(相对于Host的appBase)

  • reloadable:true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。生产环境中,建议使用false来禁用。

例子

[root@localhost data]#mkdir test
[root@localhost data]#echo test > test/index.html[root@localhost test]#vim /usr/local/tomcat/conf/server.xml
<Host name="www.a.com"  appBase="/data/web1"unpackWARs="true" autoDeploy="true"><Context path="/test" docBase="/data/test" reloadable="false" />#如果  访问  www.a.com/test/   那么 就替换成"/data/test</Host>[root@node2 ~]#curl www.a.com:8080/test/
test

tomcat搭建个人博客

将war包放在tomcat/webapps下

搭建一个repo源,用来下载数据库

vim /etc/yum.repo.d/mysql.repo

yum install  mysql-community-server -y

yum 安装的数据库,需要修改密码

先启动数据库

这时候我们不知道密码 

grep password  /var/log/mysqld.log

复制,登录

修改密码  由于是yum安装,安全级别比较高,需要稍作修改

set global validate_password_policy=0;   复杂性没有要求

set global validate_password_length=1;   长度没有要求

修改密码  alter user root@'localhost' identified by 'abc123';

修改完成

创建数据库 

192.168.94.7/jpress

搭建完成

jvm虚拟机

参数说明举例
-Xms设置应用程序初始使用的堆内存大小(年轻代+老年代)-Xms2g
-Xmx设置应用程序能获得的最大堆内存早期JVM不建议超过32G,内存管理效率下降-Xms4g
-XX:NewSize设置初始新生代大小-XX:NewSize=128m
-XX:MaxNewSize设置最大新生代内存空间-XX:MaxNewSize=256m
-Xmnsize同时设置-XX:NewSize 和 -XX:MaxNewSize,代-Xmn1g
-XX:NewRatio以比例方式设置新生代和老年代-XX:NewRatio=2new/old=1/2
-XX:SurvivorRatio以比例方式设置eden和survivor(S0或S1)-XX:SurvivorRatio=6eden/survivor=6/1new/survivor=8/1
-Xss设置每个线程私有的栈空间大小,依据具体线程-Xss256k

实现动静分离

记得每台机子都要把防火墙关闭,关闭核心防护

(systemctl stop  firewalld    setenforce 0)

 准备三台设备

linux1 做反向代理机器    linux2 和 3做 web服务端

linux1 nginx已装好,如果不会装,查看本人往期有关nginx的博客

linux 2 和3安装 jdk和tomcat(tomcat需要jdk)2和3步骤一样

首先先准备tomcat和jdk 的压缩包

tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/  

export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/

jdk安装完成

安装tomcat

tomcat安装完成

将tomcat 加入自启动

vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=Tomcat
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

完成

配置 linux1 端 进入配置文件 nginx.conf   (yum安装的路径/etc/nginx/nginx.conf   编译安装看你自己放哪就在哪)

记得 nginx -t 检查语法   nginx -s reload  重新加载配置文件 

前往 /data下建立相关文件  ,记得先在根下建立 data   (  mkdir /data)

图片的话 ,随便找一个 改名成 a.jpg即可


配置 linux2 和linux3 

linux2

echo tomcat1  > test.jsp 

linux 3  配置基本相同

配置完成 

测试


新增设备linux4 linux5 做nginx静态服务器 (yum 安装nginx )

将 /usr/share/nginx/html/index.html 页面进行修改  linux 4 和 5 都是

修改linux1  修改nginx 1的配置文件

修改 linux4 和 5 的配置 双方配置相同

测试


完成

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

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

相关文章

TabLayout预览不了?

<TableLayoutandroid:layout_width"wrap_content"android:layout_height"wrap_content"/> 当然预览不了了&#xff0c;这其实不是我要的控件。 而实际需要的是TabLayout 不是TableLayout &#xff01;&#xff01;&#xff01; <com.google.an…

php安装kafka

我的开发环境是php7.3 ,先来部署两个php扩展&#xff0c;php7.3目录下放librdkafka.dll,ext/php_rdkafka.dll&#xff0c;php.ini增加,[rdkafka] extension php_rdkafka.dll php7.3对应的扩展包链接&#xff1a;PECL :: Package :: rdkafka 看自己php版本对应在这里找PECL :: …

一周学会Django5 Python Web开发-Django5修改视图UpdateView

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计31条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

融资项目——OpenFeign的降级与熔断

当一个微服务调用其他微服务时&#xff0c;如果被调用的微服务因各种原因无法在规定时间内提供服务&#xff0c;则可以直接使用本地的服务作为备选&#xff0c;即进行降级熔断。 如之前所提到的微服务为例&#xff1a; 如果希望实现降级熔断&#xff0c;可以在本地创建一个实现…

好物周刊#44:现代终端工具

https://github.com/cunyu1943 村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. Github-Hosts 通过修改 Hosts 解决国内 Github 经常抽风访问不到&#xff0c;每日更新。 2. 餐饮点餐商城 针对…

蓝桥杯刷题4--数组和队列

目录: 1. 数组的应用–高精度 2. 队列 1. 数组的应用–高精度 高精度算法就是大数的计算方法。超过64位的大数计算&#xff0c;Java和Python都能直接算。竞赛中常常用到很大的数组。强烈建议不要用动态分配&#xff0c;因为动态分配需要多写代码而且容易出错。定义为全局静态…

【Linux基础(二)】进程管理

学习分享 1、程序和进程1.1、程序1.2、进程和进程ID 2、Linux下的进程结构3、init进程4、获取进程标识5、fork系统调用5.1、fork函数实例分析 6、进程的特性7、在Linux下进程指令7.1、终止进程指令7.2、查看进程指令&#xff1a;7.3、以树状图列出进程 8、多进程运行异常情况8.…

AI论文速读 | 【综述】城市计算中跨域数据融合的深度学习:分类、进展和展望

题目&#xff1a;Deep Learning for Cross-Domain Data Fusion in Urban Computing: Taxonomy, Advances, and Outlook 作者&#xff1a;Xingchen Zou, Yibo Yan, Xixuan Hao, Yuehong Hu, Haomin Wen&#xff08;温皓珉&#xff09;, Erdong Liu, Junbo Zhang&#xff08;张钧…

Latex公式太长换行标号

Latex中公式太长换行,且编号,可以采用align,不编号行公式用\nonumber,示例如下: \begin{align}\nonumber %第1行公式不编号&a+b+a+b+a+b+a+b+a+b+a+b+a+b+a\\&+c+d=m %第2行公式编号 \end{align}效果如下 原文件链接 公式不同命令的区别 \begin{align} 与 \…

element-plus upload上传

vue3 element-plus 2.4.3 <script> const submitUpload () > {// 单文件proxy.$refs["uploadRef"].submit(); }const uploadFile (options) > {let formData new FormData();formData.append("file", options.file)return uploadFileWith…

首发:鸿蒙面试真题分享【独此一份】

最早在23年华为秋季发布会中&#xff0c;就已经宣布了“纯血鸿蒙”。而目前鸿蒙处于星河版中&#xff0c;加速了各大互联网厂商的合作。目前已经有200参与鸿蒙的原生应用开发当中。对此各大招聘网站上的鸿蒙开发需求&#xff0c;每日都在增长中。 2024大厂面试真题 目前的鸿蒙…

从huggingface下载模型像本地加载但是UnicodeDecodeError

我自己是在Linux下出现了这个问题 原文&#xff1a;https://github.com/huggingface/transformers/issues/13674 The path for the AutoModel should be to a directory pointing to a pytorch_model.bin and to a config.json. Since you’re pointing to the .bin file dire…