JAVA 业务都是运行在java虚拟机上的。简称jvm
JAVA 可以做到一次编译,多处运行。
jre: java运行环境 会包含jvm
jdk:java开发环境 包含java的运行环境jre
jdk---->jre---->jvm----->java业务
Tomcat
是一个web服务,提供动态程序的解析(java),也支持静态资源。
在企业,会使用nginx+tomcat (动静分离),加快网站的访问和降低访问的延迟
Tomcat安装,配置,启动
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
3.存放的位置目录,并解压
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运行时需要加载的jar包
logs tomcat日志存放位置
temp tomcat临时存放文件路径
webapps tomcat默认站点目录
work tomcat运行时产生的缓存文件
启动tomcat
/soft/tomcat/bin/startup.sh (启动)
/soft/tomcat/bin/shutdown.sh (关闭)
每一个更改文件,都需要先关闭,在启动,才会生效。
检查是否启动
/soft/tomcat/logs/catalina.out (有错误也会有显示,没报错也会显示http-nio-8080)
浏览器访问: 10.0.0.7:8080
配置文件
cd /soft/tomcat/conf
vim server.xml(配置文件)
user--->负载均衡(80,443)---> ||connector(连接器)--->service(转接)--->engline(引擎)--->host---->context|| (|| 就是一个server,一个server就是一个tomcat实例 ||)
想新增站点,就找host
<Host name="zrlog.oldxu.com" appBase="/zrlog"
域名 代码存放的位置
unpackWARs="true" autoDeploy="true">
(自动解压) (自动部署)
<Valve className="org.apache.catalina.valves.AccessLogValve"(日志存放) directory="logs"(相对路径 /soft/tomcat/logs)
prefix="zrlog_access_log" suffix=".txt"
日志的前奏 日志的后缀
pattern="%h %l %u %t "%r" %s %b" />
日志的格式
</Host>
在配置的时候,需要注意:代码放在 /code1/ROOT(配置任何站点,都必须要有一个ROOT,下边放的才是所有。)下
/code1/ROOT/代码
mkdir -p /code1/ROOT
echo "123" > /code1/ROOT/index.html
配置hosts劫持
配置之后要重启。重启方式先停止,在开启
浏览器访问: tomcat1.oldxu.com:8080
※:<Context docBase="/code1/admin" path="/test" reloadable="true"/>
添加目录访问:Tomcat1.oldxu.com:8080/test
==去/code1/admin/下放置代码。
tomcat自带的base的基础认证。 ( nginx basic auth)
1.配置conf vim tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="oldxu" password="123456" roles="manager-gui,admin-gui"/>
2.还需要配置该项目的访问权限,因为Tomcat默认管理页面仅允许本机访问,如果希望其他网段能正常访问,需要配置允许规则。
找到webapps/项目/META-INF/context.xml
[root@es-node1 tomcat]# vim 项目目录下/META-INF/context.xml
[root@web01 tomcat]# cd /soft/tomcat/webapps/
[root@web01 webapps]# ll
drwxr-x--- 5 root root 87 5月 11 09:29 host-manager
drwxr-x--- 5 root root 103 5月 11 09:29 manager
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+" />
jar包 war包的关系?
1.源码包
由java工程师编写的java代码
编译(如果想用java,必须编译,使用的就是maven)
编译之后得到一个包裹:
war包:
jar包:
2.war包
有源码编译之后生成的产物,可直接放入tomcat运行起来
3.jar包
由源码包编译之后的产物
分两种情况:
不可直接运行:可能被某个java程序依赖运行,或者war包运行所依赖。
可直接运行:可以直接对外提供服务。只需要有java环境即可。命令:java -jar xxx.jar 直接启动运行,不需要tomcat。