Linux学习-Tomcat
Posted 丢爸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习-Tomcat相关的知识,希望对你有一定的参考价值。
JVM实现方式
- 一次性解释器,解释字节码并执行
- 即时编译器(just-in-time complier)–依赖于更多内存缓存解释后的结果
- 自适应编译器–缓存20%左右代码,提高80%左右的速度
JVM
- JRE(Java Runtime Enviroment)Java运行时环境
- JDK(Java Development Kit)Java开发(编译)和运行
- JDK=Java+API+JVM:是用于实现Java程序开发的最小环境
- JRE=Java SE API+JVM
Java类别
- Java SE(Standard Endtion)
- Java EE(Enterprise Edition)
- Java ME(Mobile Edition)
线程私有内存区
- 程序计数器
- Java虚拟机栈
线程共享内存区
- 方法区
- 堆:自动完成内存回收,GC(Garbage Collection)
垃圾回收算法
- 标记-清除
- 复制-
- 标记-整理
垃圾回收器
- Serial
- ParNew
- Parallel Scavenge
- Serial Old
- Parallel Old
- CMS:concurrent Mark Sweep–并发收集,低停顿,但无法收集浮动垃圾,基于标记-清除算法会产生碎片
- G1:(Garabage first)
JVM运行环境
- SUN
- JRE
- JDK
- OpenJDK
Java配置参数
-xx:+:开启此参数指定的功能
-xx:-:关闭功能
-xx:=:给option指定的选项赋值
-D
#输出所有的JVM参数
[root@mysql1 ~]# java -XX:+PrintFlagsFinal
[Global flags]
uintx AdaptivePermSizeWeight = 20 {product}
uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
uintx AdaptiveSizePausePolicy = 0 {product}
... ...
类加载器类加载器
类的生命周期
- Loading
- Verification
- Preparation
- Resolution
- Initilization
- Using
- Unloading
Sun JDk监控和故障处理工具
- jps,JVM Process Status Tool:显示指定系统内所有的HotSpot虚拟机进程的列表信息
- jstat,JVM Statistics Monitoring Tool:收集并显示HotSpot虚拟机各方面的运行数据
- jinfo:显示HotSpot虚拟机配置信息
- jmap:生成某HotSpot虚拟机的内存存储快照
可视化工具
- jconsole:Java的监控和管理控制台
- jvisualvm
容器类组件
- Engine
- Host
- Context
顶级组件
- Service
连接器
- AJP
- HTTP
- https
- proxy
Realm(领域):用户账户数据库
Valve(阀门):记录访问日志,基于IP认证
Logger:日志记录器
常见的Web容器
商业版
- Sun GlassFish Enterprise Server
- Sun Java System Web Server
- JBoss Enterprise Application Platform
- WebLogic Application Server
- Caucho’s Resin Server
- WebSphere Application Server
- NetWeaver
非商业版
- Apache Tomcat
- Apache Geronimo
- Glass Fish
- JBoss Application Server
- Jetty
- Tiny Java Web Server
- Eclipse Virgo
Tomcat安装配置
web.xml–部署描述符文件
#从网站上下载tomcat7.0.109
[root@mysql1 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.109/bin/apache-tomcat-7.0.109.tar.gz
#解压至/usr/local目录
[root@mysql1 ~]# tar xf apache-tomcat-7.0.109.tar.gz -C /usr/local
#创建软链接
[root@mysql1 ~]# ln -sv /usr/local/apache-tomcat-7.0.109 /usr/local/tomcat
`/usr/local/tomcat' -> `/usr/local/apache-tomcat-7.0.109'
[root@mysql1 ~]# cd /usr/local/tomcat
#添加环境变量,创建/etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
#应用一下/etc/profile.d/tomcat.sh文件
[root@mysql1 tomcat]# . /etc/profile.d/tomcat.sh
#查看tomcat的信息
[root@mysql1 tomcat]# catalina.sh version
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/7.0.109
Server built: Apr 22 2021 18:43:38 UTC
Server number: 7.0.109.0
OS Name: Linux
OS Version: 2.6.32-754.el6.x86_64
Architecture: i386
JVM Version: 1.7.0_55-b13
JVM Vendor: Oracle Corporation
#启动tomcat
[root@mysql1 tomcat]# catalina.sh start
#查看启动tomcat后监听的端口
[root@mysql1 tomcat]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1998/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1379/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1980/master
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2134/java
tcp 0 0 :::3306 :::* LISTEN 1943/mysqld
tcp 0 0 :::8080 :::* LISTEN 2134/java
tcp 0 0 :::22 :::* LISTEN 1379/sshd
tcp 0 0 ::1:25 :::* LISTEN 1980/master
#查看日志
[root@mysql1 tomcat]# cat logs/catalina.2021-04-23.log
#/etc/rc.d/init.d/tomcat
#!/bin/bash
# Tomcat init script for linux
#
# chkconfig 2345 96 14
# description: The Apache Tomcat Servlet/JSP Container.
JAVA_HOME=/usr/local/jdk
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
exec $CATALINA_HOME/bin/catalina.sh $*
#给/etc/rc.d/init.d/tomcat文件添加执行权限
[root@mysql1 tomcat]# chmod +x /etc/rc.d/init.d/tomcat
[root@mysql1 tomcat]# service tomcat stop
Apache后端代理
- mod_proxy-基于会话的持久连接
- mod_proxy_http
- mod_proxy_ajp
- mod_proxy_banlancer
- mod_jk
- mod_jk2–官方不提供维护
以上是关于Linux学习-Tomcat的主要内容,如果未能解决你的问题,请参考以下文章
linux命令学习02-通过tomcat学习ps和netstat