Tomcat

Tomcat应用

1.JVM基本介绍

​ JAVA业务都是运行在java虚拟机上的,简称 jvm ( java virtual machine )

​ 为什么java需要jvm虚拟机?
​ 早期:
​ C语言 不支持跨域平台 (游戏)
​ Windows:在编译一次
​ MACOS:还需要编译
​ LINUX: 编译一次
​ 可移植性比较的差。
​ JAVA: 可以做到一次编译,多处运行。
​ windows、linux、macos。

​ 需要我们在操作系统上启动运行一个jvm虚拟机,这样我们将java编译好的war、jar包
​ 在windows、linux、macos平台上运行起来。无需我们重复编译。

​ jvm是由谁提供的呢?
​ jre:java运行环境 java runtime environment,包含了jvm。
​ jdk:java开发环境 会包含java的运行环境 jre。

​ 如果我们只是单纯运行java代码,jre足够。 jdk。

2.Tomcat是什么,与Nginx的区别。

​ Tomcat是一个web服务,提供动态程序的解析(java),支持静态资源。
​ 企业会nginx+tomcat模型, nginx处理静态资源,tomcat处理动态资源(java),能加速网站的访问和降低访问的延迟。

3.Tomcat安装、配置、启动

1.安装jdk

yum install java -y

2.安装Tomcat ( 下载 Tomcat、解压、启动 )

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.34/bin/apache-tomcat-9.0.34.tar.gz
mkdir /soft
tar xf apache-tomcat-9.0.34.tar.gz  -C /soft/
ln -s /soft/apache-tomcat-9.0.34/ /soft/tomcat

3.目录结构

bin		 		主要包含启动和关闭tomcat的脚本(启停java脚本依赖jar包文件)
conf			tomcat配置文件的目录
lib		  		tomcat运行时需要加载的jar包
logs			tomcat日志存放位置
temp		 	tomcat临时存放文件路径
webapps	   		tomcat默认站点目录
work			tomcat运行时产生的缓存文件

4.Tomcat配置文件、架构

1.了解配置文件
2.使用图的方式在来讲解一次,结合配置文件去理解。

Tomcat的HTTP请求过程
用户发出一个请求,如http://tomcat.oldxu.com:8080/index.jsp
Connector发现是http/1.1协议,而且还是8080端口,于是就把请求接收后交给符合条件的Engine
Engine通过请求中的主机名tomcat.oldxu.com查找满足条件的虚拟主机(Host)
找到后就去此虚拟主机指定的appBase(代码存放的目录)最后将解析产生的结果返回给用户。

5.Tomcat虚拟主机配置

7.Tomcat部署Zrlog

​ 1.获取war包,或者 ( 源码包 -->编译–>war包–部署 )
​ war包:直接部署
​ 源码包:编译生成war包在部署

1.定义虚拟主机

    
  
  

2.上传war包至指定目录

[root@web01 conf]# mkdir /zrlog
[root@web01 conf]# ll /zrlog/
总用量 11316
-rw-r--r-- 1 root root 11585583 5月  11 11:32 ROOT.war

3.重启tomcat应用

​ 1.自动加压.war包
​ 2.自动部署,war包

[root@web01 conf]# /soft/tomcat/bin/shutdown.sh
[root@web01 conf]# /soft/tomcat/bin/startup.sh

4.检查是否部署ok

[root@web01 conf]# tail -f /soft/tomcat/logs/catalina.out
11-May-2020 11:33:32.577 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
11-May-2020 11:33:32.681 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in [4,035] milliseconds

5.访问zrlog站点

​ 配置远程数据库连接信息

MariaDB [(none)]> create  database zrlog charset utf8;
MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';

​ 后台用户名和密码
​ oldxu
​ oldxu

做好tomcat部署zrlog 发出来。

多个web节点。
172.16.1.7
172.16.1.8

1.安装tomcat

[root@web02 ~]# yum install java -y

3.拷贝代码 (注意是在web01节点操作的)

[root@web01 ~]# scp -rp /soft [email protected]:/
[root@web01 ~]# scp -rp /zrlog [email protected]:/

4.web02操作如下

[root@web02 ~]# rm -rf /soft/tomcat/
[root@web02 ~]# ln -s /soft/apache-tomcat-9.0.34/ /soft/tomcat

5.共享静态资源。

yum install nfs-utils -y

[root@nfs ~]# cat /etc/exports
/data/blog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

[root@nfs ~]# mkdir /data/zrlog
[root@nfs ~]# chown -R www.www /data/zrlog/
[root@nfs ~]# systemctl restart nfs

所有web节点都需要挂载
mount -t nfs 172.16.1.31:/data/zrlog /zrlog/ROOT/attached/

tomcat自带的base的基础认证。 ( nginx basic auth)

1.配置conf/tomcat-users.xml

2.还需要配置该项目的访问权限,因为Tomcat默认管理页面仅允许本机访问,如果希望其他网段能正常访问,需要配置允许规则。
找到webapps/项目/META-INF/context.xml

[root@es-node1 tomcat]# vim 项目目录下/META-INF/context.xml
allow=“127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1” />
#修改为
allow=“127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1|10.0.0.\d+” />

项目如何引入base基础认证。

8.为zrblog添加/admin/添加base认证,需要找到项目下的WEB-INF/web.xml进行配置。(了解)

[root@es-node1 tomcat]# vim /code/ROOT/WEB-INF/web.xml





zrlog
/admin/*

   
    
        zrlog_role
    




    BASIC
    Default


#配置用户名密码,关联对应的角色(多个role不要使用相同用户)
[root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml

#重启tomcat
[root@es-node1 ~]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh

java源码包、jar包、war包的关系、联系、区别? 扩展知识

1.什么是源码包?
由java工程师编写的java代码,称职为java源码包。

	编译  ( maven 方式去编译java的源代码 )

编译之后会得到一个包裹:
	war
	jar

2.什么是war包?
由源码编译后生成的产物,可以直接放入 tomcat运行起来。( 比较广泛 )

3.什么是jar包?
由源码编译后生成的产物。
1.不能独立运行起来,它可能被某个java程序依赖运行。或者war包运行所依赖。
2.可独立运行起来的, java -jar xxx.jar 直接启动运行,无需tomcat

4.源码包、jar、war:
1.源码包编译后会产生war包、jar包
2.war通常是直接由tomcat运行启动,启动加载项目时会依赖一些jar包。
3.jar包,
分为不可独立运行(被java程序依赖运行、或者是被war包依赖运行)
分为可独立运行:可以直接对外提供服务。只需要有java环境即可。启动命令: java -jar xx.jar

你可能感兴趣的:(tomat,linux)