WEB集群-网站演变与tomcat集群

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

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 &quot;%r&quot;%s %b />
​
</Host> Host部分
name="域名"

配置文件小结

端口:8005,8080,8443, 8009(从8.5开始隐藏,与apache连接) Host部分含义

2)规范tomcat访问日志格式

perl 复制代码
pattern="%h %l %u %t &quot;%r&quot; %s %b &quot;% {Referer}i&quot; &quot;%{User-Agent}i&quot; &quot;% {X-Forwarded-For}i&quot;" />

&quot;表示双引号

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/
相关推荐
yzhSWJ6 小时前
mybatisplu设置自动填充
java·spring·tomcat
独行soc7 小时前
#渗透测试#漏洞利用#红蓝攻防#信息泄露漏洞#Tomcat信息泄露漏洞的利用
安全·web安全·面试·tomcat·漏洞挖掘·信息泄露·tomcat漏洞
亲爱的小小安妮呀7 小时前
JDBC(Tomcat)
java·servlet·tomcat·web app
checkMa1 天前
【Tomcat运行startup.bat闪退】
tomcat
全栈老实人_1 天前
农家乐系统|Java|SSM|VUE| 前后端分离
java·开发语言·tomcat·maven
Anlner1 天前
Java课程设计:基于tomcat+jsp+sqlserver的javaweb计算机配件报价系统
java·sqlserver·eclipse·tomcat·课程设计
不惑_1 天前
SpringbBoot如何实现Tomcat集群的会话管理
java·tomcat
青年有志2 天前
深入浅出 MyBatis | CRUD 操作、配置解析
数据库·tomcat·mybatis
羊村懒哥2 天前
tomcat-安装笔记(包含虚拟主机配置)
java·笔记·tomcat
敲代码娶不了六花2 天前
jsp | servlet | spring forEach读取不了对象List
java·spring·servlet·tomcat·list·jsp