Tomcat负载均衡、调优核心应用进阶学习笔记(二):Tomcat前世今生、安装、配置文件详细说明、tomcat应用程序部署、webapp 体系结构、tomcat运行方式
Tomcat前世今生
java体系:
1 java程序设计语言
2 java API(类库)
3 java class文件格式
4 java vm(虚拟机)JDK:java development kit (java api 、jvm)java开发工具
Java SE:JDK + 额外类库,面向桌面级应用
Java EE:Java SE+企业级类库
servlet、jsp、jmx、jms、javamail、ejb
servlet 容器,让servlet程序能够在这个环境中编译执行Tomcat:JDK+servlet,jsp(Java SE的不完整实现)
其他的web container:Jetty、Resin、Websphere(Java SE的完整实现)、webLogic(Java SE的完整实现)、JBoss、Glassfish
server.xml 按照某种层次结构,组织了tomcat内置的各种组件,内部有许许多多特殊的Java类,用于实现tomcat的各种功能,这些就是除了jsp和servelet之外的由tomcat自身的类库,作为一个web应用所需要的一些组件
server.xml中的组件:server、service、connector…
安装
//安装jdk
rpm -ivh jdk-7u9-linux-x64.rpm
ls /usr/java
//安装成功后java目录下就会出现刚刚安装的jdk
jdk1.7.0._09
//配置java环境变量(略)https://blog.csdn.net/w1196726224/article/details/52029201
//安装tomcat(略)
//因为tomcat在启动的时候并不需要管理员,所以为了安全请确保
//tomcat的文件目录是普通用户的权限,启动tomcat脚本的时候,也以普通用户的权限启动
useradd -r tomcat
//注意普通用户默认不能使用小于1024的端口,但是有开源程序能够做到
//通过tomcat执行脚本
su - tomcat -c "/usr/local/tomcat/bin/catalina.sh"
//配置环境变量
vim /etc/profile.d/tomcat.sh
//输入
export CATALINA_HOME= /Users/leesin/for mac 安装包/apache-tomcat-7.0.86
export PATH=$CATALINA_HOME/bin:$PATH
//source这个文件
. /etc/profile.d/tomact.sh
//就可以再其他的目录执行catalina.sh了
cd ../../
//查看版本
catalina.sh version
//检查配置文件语法是否有问题
catalina.sh configtest
catalina.sh start
配置文件详细说明
在tomcat 的conf目录下
➜ apache-tomcat-7.0.86 cd conf
➜ conf ls
Catalina catalina.properties logging.properties tomcat-users.xml
catalina.policy context.xml server.xml web.xml
server.xml 核心配置文件(前面讲了太多,略)
context.xml :为部署于此Tomcat实例上的所有web应用程序提供的默认配置文件,每个webapp都可以使用独有的context.xml,通常放置于webapp目录的META-INF子目录中,常用于定义会话管理器、Realm以及JDBC等,这个目录是不允许通过web访问的
web.xml:为部署于此Tomcat实例上的所有web应用程序提供默认部署描述符,通常用于为webapp提供基本的servlet定义和MIME映射表。
tomcat-user.xml:用户名密码
catalina.policy:当机遇-security选项启动tomcat实例时会读取此配置文件,此配置文件是JAVA的安全策略配置文件,配置访问codebase或某些java类的权限
catalina.properties:java属性定义文件,设定类加载器路径、安全保列表和一些调整性能的参数信息
logging.properties:定义日志相关的配置信息,如日志级别、文件路径等
tomcat应用程序部署
部署是指将 webapp 及其所依赖类库等装载进 tomcat 实例上,以便接受用户请求;
部署方式:
- 静态方式:在 Tomcat 启动之前进行的 webapp 部署
- 动态方式:在打断 tomcat 运行的前提下,通过 tomcatmanager 或其它的命令行工具进行的部署;
- TCD: Tomcat Client Deployer
部署是由一类“操作”组成:
Deploy:将 web源文件放置于目标目录、配置 tomcat 服务器能够基于某contcxt 路径访问此 weap,并将其特有的类由类加载器进行装载等
Redeploy:重新部署,主要用于升级时
Undeploy:取消部署,停止应用程序并从 tomcat 实例上移除其部分文件和部署名;
stop:停止,停止只是不让访问了,加载的类还在里面
start:将停止的 webapp 启动起来
部暑方式:
Tomcat manager
ANT 脚本
TCD
war 类归档程序的部署:将归档文件复制到$ CATALINA BASE/webapps/目录中,并重启 tomcat即可; tomcat 会自动展开 war归档;
webapp 体系结构
webapp 体系结构有特定的组织格式,是一种层次型目录结构:通常包含了 serylet 代码文件、jsp页面文件、类文件、部署描述符文件等等,一般会打包成归档格式
/:web 应用程序的根目录
/WEB-INF:此 webapp 的私有资源目录,通常 web.xml 放置于此目录
/WEB-INF/classes:此 webapp 自有的类
/WEB-INF/lib:此 webapp 自有能够被打包为 jar 格式的类
webpp 的归档格式:
EJB类归档的扩展名 .jar
web 应用程序的归档扩展名为 .war
资源适配器的扩展名 .rar
企业级应用程序的扩展名 .ear
web 服务的展名为 .ear 或 .war
<%@ page.language="java”‰>
<%@ page Import=”java,uti1.*” %>
<html>
<head>
<title>JSP test Page</title:
</head>
<body>
<%>
out println("Hello world!");
out println("Hello);
<%>
</html>
tomcat运行方式
独立配置:既是web服务器,又是servlet容器处理jsp
进程间配置,web服务器通过nginx或者apache实现
独立/网络配置
apache与tomgcat连接器通信的模块有两个:
1.mod_jk:apache1.3 apache2.0
2.mod_proxy:apache2.2
tomcat的连接器协议有两种:
http
ajp
所以连接方式有四种
mod_jk:http,ajp
mod_proxy:http,ajp
mod_jk VS mod_proxy:
负载均衡:两者都支持,但是mod_proxy要弱一点,但是在特性定制上很强大
管理接口:基于web页面管理接口两者都支持,现在好像mod_proxy不支持了
兼容性:mod_proxy已经成为标准模块了,但是仍然需要手动安装
配置:mod_proxy要简单
协议:mod_jk(ajp),mod_proxy(http/https/ajp)
tomcat的http连接器:
类型有三种:
1.基于java的http/1.1了连接器(默认)
2.基于java的高性能NIO HTTO/1.1 连接器
3.基于C/C++研发的Native APR HTTP/1.1连接器
在负载较大的程序中,建议使用基于C/C++研发的Native APR HTTP/1.1连接器,但是需要额外编译安装APR组件
<connector port="8080" protocol="http/1.1">
<connector port="8080" protocol="org.apache.coyote.http1.Htto11NioPtotocol">
<connector port="8080" protocol="org.apache.coyote.http1.Htto11AprPtotocol">
LAMT:
apache(mod_jk,ajp)+tomcat(ajp connector)
apache(mod_proxy,(http,https,ajp))+tomcat(http,https,ajp)
LNMT:
nginx+tomcat(http,https)
Tomcat负载均衡、调优核心应用进阶学习笔记(二):Tomcat前世今生、安装、配置文件详细说明、tomcat应用程序部署、webapp 体系结构、tomcat运行方式的更多相关文章
- Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理
文章目录 tomcat文件目录 bin conf lib logs temp webapps work 页面 架构组件详解 tomcat运行方式 组件介绍 tomcat管理 tomcat文件目录 ➜ ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(五):Tomcat调优和Tomcat监控(差评)
文章目录 tomcat调优 tomcat监控 tomcat调优 vi catalina.sh # --------------------------------------------------- ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(三):LNMT nginx+tomcat、LAMT apache+tomcat、session会话保持、不错的站点
文章目录 LNMT nginx+tomcat LAMT apache+tomcat 基于mod_proxy 单节点 配置基于mod_proxy的负载均衡 基于mod_jk(需要编译安装) 单节点 配置 ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(四):JVM调优
文章目录 概述 **JVM管理的内存段可分为两大类:线程共享内存和线程私有内存** Java Heap SIze Options The memory structure of a JVM proce ...
- 一份关于jvm内存调优及原理的学习笔记
JVM 一.虚拟机的基本结构 1.jvm整体架构 类加载子系统:负责从文件系统或者网络中加载class信息,存入方法区中. 方法区(Perm):存放加载后的class信息,包括静态方法,jdk1.6以 ...
- 一份关于jvm内存调优及原理的学习笔记(转)
JVM 一.虚拟机的基本结构 1.jvm整体架构 类加载子系统:负责从文件系统或者网络中加载class信息,存入方法区中. 方法区(Perm):存放加载后的class信息,包括静态方法,jdk1.6以 ...
- MYSQL进阶学习笔记二:MySQL存储过程和局部变量!(视频序号:进阶_4-6)
知识点三:MySQL存储过程和局部变量(4,5,6) 存储过程的创建: 创建存储过程的步骤: 首先选中数据库 改变分隔符,不让分号作为执行结束的标记.(通常情况下,改变分隔符命令 DELIMI ...
- Ubuntu下配置 keepalived+nginx+tomcat 负载均衡
本文力图阐述在 Ubuntu Server 环境下使用 Keepalived + Nginx + Tomcat 搭建高可用负载均衡环境的操作步骤和简约配置,这里不涉及性能调优.先说一下他们各自扮演的角 ...
- 介绍一下再Apache下的Tomcat负载均衡的一些使用问题
在负载均衡技术中,硬件设备是比较昂贵的,对于负载均衡的学习者如果不是在企业中应用或者是学员中学习,很少有机会能碰到实际操作的训练.(http://xz.8682222.com)所以,很多朋友都会选择软 ...
随机推荐
- 测开之路四十五:Django之最小程序
安装Django库 Django最小程序 import sysfrom django.conf.urls import urlfrom django.conf import settingsfrom ...
- iview+vue 表格中添加图片
开门见山,话不多说,要在表格中添加图片,可以使用td: <table " width="100%"> <tr class="tr-style ...
- Thymeleaf 遇到的问题
1. 后台传递long类型的值作为 js 执行方法的参数,精准度失效解决办法 解决办法:用thymeleaf的拼接字符串方法来解决 例:<button class="btn btn-p ...
- 转载:LESS基本用法
转载出处:https://blog.csdn.net/qq_38209578/article/details/80566860 转载出处:https://blog.csdn.net/weixin_44 ...
- Redis 系列(02)数据结构
目录 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 1.2 数据结构 1.3 Redis数据存储结构 2. Hash 2.1 基本操作 2.2 数据结构 ...
- Jquery中input:type=radio的监听,获取设置值
一.html <div id='demo'> <input type='radio' name='sex' value='男' > <input type='radio' ...
- python基础----斐波那契数列
python实现斐波那契数列的三种方法 """ 斐波那契数列 0,1,1,2,3,5,8,13,21,... """ # 方法一:while ...
- 选择器与过滤器(全)————JQ
JQ基础--选择器与过滤器(全) JQ选择器 <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...
- 支持跨域的html元素
image javascript iframe link
- PL/SQL to update all columns
undefine schema_name; declare l_Err ); begin for r in (select atc.table_name, atc.column_name, atc.d ...