java业务都是运行在java虚拟机上的,简称jvm。
为什么java要使用jvm呢?
C语言不支持跨域平台,需要多次编译,可移植性比较差。
JAVA可以做到一次编译,多次运行,可移植性较高。
java在操作系统上启动运行一个jvm虚拟机,这样我们将java编译好的war、jar包在windows、linux、macos平台运行起来,无需重复编译。
jvm是由谁提供的呢?
jre:java运行环境,包含了jvm
jdk:java开发环境,会包含java 的运行环境jre
如果我们只是单纯的运行java代码,那么我们只使用jre就足够。
tomcat是一个web服务,提供动态程序的解析(java),支持静态资源。
企业会选择nginx+tomcat模型,nginx处理静态资源,tomvat处理动态资源(java),能加速网站的访问和降低访问的延迟。
1. 安装jdk
yum install java -y
2. 安装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
tomcat的目录结构
bin:主要包含启动和关闭tomcat的脚本(启停java脚本依赖的jar包文件)
conf:tomcat配置文件的目录
lib:tomcat运行时所需要库文件
logs:日志
temp:tomcat临时存放文件的路径
webapps:tomcat默认站点目录
work:tomcat运行时产生的缓存文件
./soft/tomcat/bin/startup.sh
tomcat的一个配置文件代表一个server。
tomcat请求http的过程:
用户发出一个请求,如http: //tomcat. wenjie.com: 8080/ index. jsp。
Connector发现是http/1.1协议, 而且还是8080端口,于是就把请求接收后交给符合条件的Engine。
Engine通过请求中的主机名tomcat .wenjie. com查找满足条件的虚拟主机(Host) 。
找到后就去此虚拟主机指定的appBase (代码存放的目录)最后将解析产生的结果返回给用户。
配置文件内容如下:
1.获取war包,或者 ( 源码包 -->编译-->war包--部署 )
war包:直接部署
源码包:编译生成war包在部署
2.定义虚拟主机
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';
多个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.51:/data/zrlog /zrlog/ROOT/attached
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+" />
[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