1、Java容器
java容器:用于存放与运行java代码的环境.
web中间件
2、JVM-JRE-JDK
JAVA的优秀性:1份代码处处运行与使用. 代码的可移植性.
- JVM: java 虚拟机中,运行java代码的地方.
- JRE: java Runtime Enviroment java运行环境 . 提供jvm环境,java命令.
- JDK: Java Development Kit java开发环境 , jvm+jre+额外功能
温馨提示: 未来部署Jdk即可,jdk
jdk------》oracle
openjdk------》开源
未来根据开发使用的环境准备即可. 目前主要版本: jdk 1.8 jdk 8
3、Tomcat极速上手指南
1)部署JDK
jdk 1.8.351 8u351
二进制安装
bash
mkdir -p /app/tools/
tar xf jdk-8u341-linux-x64.tar.gz -C /app/tools/
ll /app/tools/
#创建软连接,更方便管理版本
ln -s /app/tools/jdk1.8.0_341/ /app/tools/jdk
#配置JAVA环境变量,一般是二进制安装需要配置(yum安装或rpm包方式安装就不需要配置).
#'EOF'说明不需要识别内容,原封不动直接追加文件
cat >>/etc/profile<<'EOF'
export JAVA_HOME=/app/tools/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF
#刷新检查版本
source /etc/profile
java -version
2)部署tomcat
bash
tar xf apache-tomcat-9.0.65.tar.gz -C /app/tools/
#软连接,注意后面不要加/,表示一个链接到一个文件,而不是目录
ln -s /app/tools/apache-tomcat-9.0.65/ /app/tools/tomcat
/app/tools/tomcat/bin/version.sh #检查jdk,tomcat信息
3)启动tomcat
perl
/app/tools/tomcat/bin/startup.sh
#检查
ss -lntup | grep java
ps -ef | grep java
4、Tomcat目录结构
1)目录简介
2)bin目录
3)conf
4)log日志
5)webapps
站点目录
war包,自动解压,自动部署
5、Tomcat日常管理与访问
1)书写systemctl管理配置文件进行管理
服务管理指令
存放在/usr/lib/systemd/system/xxxx.service
分为3个部分
修改或设置systemctl配置要进行重新加载配置.
参考其他服务例如sshd服务
ini
[root@clb1 system]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
tomcat systemctl 配置
1、环境变量配置
ruby
cat etc/sysconfig/tomcat
JAVA_HOME=/app/tools/jdk
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/bin/:/usr/sbin/:/usr/local/bin/:/usr/local/sbin/
CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
2、systemct文件配置
ini
#systemctl配置
[root@clb1 ]# cat /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat java web container
After=network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/app/tools/tomcat/bin/startup.sh
ExecStop=/app/tools/tomcat/bin/shutdown.sh
ExecReload=/app/tools/tomcat/bin/shutdown.sh && sleep 1 && /app/tools/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
#让系统重新加载一下.service结尾的文件
[root@clb1]# systemctl daemon-reload
2)运行代码
- 开发人员书写的java代码:java源代码,无法直接部署tomcat中
- 需要对源代码进行编译:生成war包或jar包.
如何编译java源代码:
通过maven,Gradle把java源代码,编译生成war包或jar包
案例01:war包案例,运行memtest.war包案例,放在webapps目录,然后访问即可
项目结果:
案例02:jar包案例,运行指定的jar包.
bash
#启动程序 nginxWebUI-3.4.0.jar ,提醒:进入子目录下运行jar包,绝对路径有时候有bug
#先测试在后台
java -jar -Dfile.encoding=UTF-8 nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/root/
#后台运行一个Java应用程序,该程序监听8080端口,并且不会将输出显示在终端上。
Linux: nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
#参数说明(都是非必填)
--server.port 占用端口, 默认以8080端口启动
--project.home 项目配置文件目录,存放数据库文件,证书文件, 日志等, 默认为/home/nginxWebUI/
注意Linux命令最后加一个&号, 表示项目后台运行
6、WEB集群-Tomcat集群
1)配置文件server.xml
ini
#8005端口
<Server port="8005" shutdown="SHUTDOWN">
8005 shutdown端口,连接这个端口输入shutdown字符,就可以关闭 Tomcat.
#配置 管理端认证功能
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
#8080 处理用户的http请求的.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#这里的8443是用于处理 https请求.
#engine部分,指定默认的虚拟主机.
<Engine name="Catalina" defaultHost="localhost">
defaultHost="localhost" 指定localhost作为默认的虚拟主机
#Host部分,虚拟主机的配置部分.
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve
className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log' suffix=".txt"
pattern="%h %l %u %t "%r"%s %b />
</Host> Host部分
name="域名"
配置文件小结
端口:8005,8080,8443, 8009(从8.5开始隐藏,与apache连接) Host部分含义
2)规范tomcat访问日志格式
perl
pattern="%h %l %u %t "%r" %s %b "% {Referer}i" "%{User-Agent}i" "% {X-Forwarded-For}i"" />
"
表示双引号
3)tomcat与用户请求
1、请求与8080端口连接
2、域名与Host部分的Name进行匹配,
a) 匹配成功则使用对应的虚拟主机.
b) 匹配失败则使用Engine部分defaultHost指定的默认的虚 拟主机进行处理.
tomcat可以处理静态与动态请求. 处理静态请求的效率较低,擅长动态.
7、Tomcat部署zrlog应用
1、代码war
2、创建数据库,用户
代码
修改war包名称为zrlog.war
数据库
sql
create database zrlog;
grant all on zrlog.* to 'zrlog'@'172.16.1.%' identified by '2';
show databases ;
select user,host from mysql.user;
部署代码
改名为zrlog.war后 移动到webapps目录
浏览器访问
bash
前台:
http://zrlog.oldboylinux.cn:8080/zrlog/
后台管理:
http://zrlog.oldboylinux.cn:8080/zrlog/admin/