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/
相关推荐
Gu_yyqx12 小时前
IDEA 中 Tomcat 部署 Java Web 项目
java·tomcat·maven
毕设源码-赖学姐1 天前
【开题答辩全过程】以 安卓的服装销售APP为例,包含答辩的问题和答案
java·eclipse·tomcat
..Move...1 天前
Docker应用部署tomcat和nginx
nginx·docker·tomcat
QMY5205202 天前
爬虫的意义
java·spring·tomcat·maven
5pace3 天前
Mac Nginx安装、启动、简单命令(苍穹外卖、黑马点评前端环境搭建)
java·前端·nginx·macos·tomcat
旷野说3 天前
Spring Boot 1.x、2.x 3.x区别汇总
java·spring·tomcat·1024程序员节
JH30733 天前
jvm,tomcat,spring的bean容器,三者的关系
jvm·spring·tomcat
R.lin3 天前
使用 Undertow 替代 Tomcat
java·后端·tomcat
Live&&learn4 天前
Tomcat 10和Tomcat 9引入servlet的不同
java·servlet·tomcat
K_i1344 天前
Tomcat核心原理与运维实战指南
java·运维·tomcat