tomcat配置介绍
第一节java的介绍
java需要一个java的运行环境
JDK:包含了好几个java组件,包含类库(API) 开发工具(java) jvm(java虚拟机)JRE(类库)
tomcat:开源 企业级应用, 基于JDK 上的
tomcat自身也是一个web服务器,一般用来服务动态资源
作为JSP容器,包含以下组件:
1 每一个tomcat运行的一个进程叫做一个server,一台服务器上可以作行多个server,每个server监听在不同的端口上,
2 engine引擎:用于存放java代码,并把该代码加以运行得到结果的 类似JVM (java虚拟机)
3连接器:connector:连接器与引擎之间是一一对应的,适用于
service组件:把一个或多个连接器与一个引擎连接起来,一个service可以有多个连接器但只有一个引擎
主机:在一个引擎内部是有多个主机的(虚拟主机)可以基于主机名,端口,ip来定义虚拟主机,一般使用主机名来定义
安装tomcat首先需要安装JDK:
1 JDK又分为两种: openjdk oraclejdk
centos7有自带openJDK
安装jdk
yum install java-1.8.0-openjdk-devel
java –version 查看版本
所有应用环境会通过$JAVA_HOME 来找java的安装目录
设定环境变量
设定;vim /etc/prodile.d/java.sh
export JAVA_HOME=/usr
2种 安装oracle官方jdk 需要到oracle官方站点下
jdk安装在/usr/java
vim /etc/profile.d/java.sh 编写运行环境
#!/bin/bash
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
tomcat工作流程:
index.jsp(页面) –它有jsper这个程序翻译为------index_jsp.java -----由javac编辑器转为类文件-----index_jsp.class ------在引擎上运行(jvm上)
安装tomcat
yum install tomcat -y
tomcat一些可安装组件
安装web相关的包:
# yum install tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp
安装后可以直接启动,运行tomcat是以java进程运行的,监听8080端口
访问 :192.168.1.104:8080
tomcat , 配置文件 server,xml
web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置;
context.xml:每个webapp都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
tomcat-users.xml:用户认证的账号和密码文件;
catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略;
catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
logging.properties:日志系统相关的配置;
每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型:
顶级组件:Server
服务类组件:Service
连接器组件:http, https, ajp(apache jserv protocol)
容器类:Engine, Host, Context
被嵌套类:valve, logger, realm(一个范围), loader, manager, ...
集群类组件:listener, cluster, ...
JSP WebAPP的组织结构:
/: webapps的根目录 (页面的存放目录)
index.jsp : 主页面
WEB-INF/:当前webapp的私有资源路径;通常用于存储当前webapp的web.xml和context.xml配置文件;
META-INF/:类似于WEB-INF/;
classes/:类文件,当前webapp所提供的类;
lib/:类文件,当前webapp所提供的类,被打包为jar格式
这站点放在cd /var/lib/tomcat/webapps/
如作业test测试页面
创建目录
创建主页面
vim test/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<% out.println("hello world");
%>
</body>
</html>
将test目录放在/var/lib/tomcat/webapps/ 这个目录下
启动服务:
systemctl start tomcat.service
在tomcat的页面首部有两个界面
1 manager:是管理应用程序的
2 host-maneger:是管理虚拟主机的 ,能完成虚拟主机的增删改 ,完成热部署
这两个访问首先需要设定用户认证,在tomcat-user.xml
# vim /etc/tomcat/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
启动服务讲可以访问了
host manager 可以在线管理虚拟主机 这种定义的虚拟主机重启服务就没有了,需要定义在配置文件中
tomcat的常用组件配置:
1 Server:代表tomcat instance,即表现出的一个java进程;监听在8005端口,只接收“SHUTDOWN”。各server监听的端口不能相同,因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口;
2 Service:用于实现将一个或多个connector组件关联至一个engine组件;
3 Connector组件:负责接收请求,常见的有三类http/https/ajp;
进入tomcat的请求可分为两类:
1 来自客户端直接的请求
2 来自其他服务器反代的请求
如:
nginx --> http connector --> tomcat
httpd(proxy_http_module) --> http connector --> tomcat
httpd(proxy_ajp_module) --> ajp connector --> tomcat
配置文件:
对于connector连接器类的属性: 连接器配置
port="8080"
protocol="HTTP/1.1" 协议
connectionTimeout="20000"
address:监听的IP地址;默认为本机所有可用地址;
maxThreads:最大并发连接数,默认为200;
enableLookups:是否启用DNS查询功能;
acceptCount:等待队列的最大长度
Engine组件:Servlet实例,即servlet引擎,其内部可以一个或多个host组件来定义站点; 通常需要通过defaultHost来定义默认的虚拟主机;
Host组件:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机,
示例:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
host 下的配置说明:
(1) appBase:此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径相对程序根目录
(2) autoDeploy:在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat
如定义一个虚拟主机: www.xiao.com
mkdir -pv /appdata/xiao
mkdir -pv /appdata/xiao/ROOT/{lib,classes,WEB-INF}
配置主机
<Host name="www.xiao.com" appBase="/appdata/webapps" unpackWARs="true" autoDeploy="true"/>
给它复制一个站点
重启服务
访问测试
www.xiao.com 基于域名访问可能需要在windows下的hosts文件中做域名解析
192.168.1.104 www.xiao.com
定义context组件,作用可以定义重定向,该组件定义在host组件中
如
在配置文件中定义:
访问: www.xiao.com/eshop
Valve组件:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
Valve存在多种类型:
定义访问日志:org.apache.catalina.valves.AccessLogValve
定义访问控制:org.apache.catalina.valves.RemoteAddrValve
tomcat配置介绍的更多相关文章
- Tomcat 配置介绍
参数说明: maxThreads: 最大可以创建请求的线程数 minSpareThreads: 服务启动时创建的处理请求的进程数 Connector中的port: 创建服务器端的端口号,此端口监听用户 ...
- tomcat 配置
tomcat 安装完成之后,我们可以在器目录先看到有如下结构
- 图文解说:Nginx+tomcat配置集群负载均衡
图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用 作者:niumd Blog:http://ari.iteye ...
- Tomcat配置HTTPS方式生成安全证书
在Tomcat 6中配置SSL双向认证是相当容易的,本文将介绍如何使用JDK的keytool来为Tomcat配置双向SSL认证.并实现批量生成证书 系统需求:JDK 5.0Tomcat 6.0.16启 ...
- 02 - Tomcat配置
Tomcat配置 本文内容 介绍 Windows UNIX daemon 1.介绍 首选看Tomcat目录下的RUNNING.TXT 2.Windows平台下 可以选择下载windows instal ...
- tomcat配置虚拟主机
在眼下,非常多server都是一台server对外能够訪问非常多个javaEE的项目,这样的实现方式就须要在tomcat里面配置虚拟主机了!以下就说说怎样配置虚拟主机: 找到tomcat的安装文件夹, ...
- Web开发之tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
Tomcat的配置及测试: 第一步:下载tomcat,然后解压到任意盘符 第二步:配置系统环境变量 tomcat解压到的D盘 (路径为: D:\tomcat), 配置环境变量: 启动tomcat需要两 ...
- eclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)
我的开发环境:eclipse kepler (4.3)+tomcat7.0.42. 在我想看eclipse中web项目jsp文件被tomcat转换成java以后的java源文件的位置,发现正常情况下的 ...
- Tomcat 配置篇
Tomcat 配置一.Tomcat 基本介绍 1.关键目录 a) bin 该目录包含了启动.停止和启动其他的脚本,如startup.sh.shutdown.sh等; b) conf 配置文件和一些文档 ...
随机推荐
- LabVIEW--为设备添加配置文件.ini
需求:我同一个程序下载到两台机器人上,有些参数是不一样的,比如说服务器的ID或者端口,以及存放文件的位置,如果我每次下载之前改程序的话就非常麻烦了(虽然在程序里面是作为全局变量来存的),不利于后期的更 ...
- WINDOWS资源编译器出错信息
ACCELERATORS语句的type域应包含ASCⅡ值或VIRTKEY值. BEGIN expected in table BEGIN关键字应紧跟在ACCELERATOR ...
- 【进阶2-3期】JavaScript深入之闭包面试题解
这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://github.com/yygmind/blog/issues/19 作用域指的是一个变量和函数的作用范围,JS中函数内声明的所有变 ...
- org.apache.catalina.core.DefaultInstanceManager cannot be cast to org.apache.tomcat.InstanceManager
1.控制台报错信息 严重: Servlet.service() for servlet [jsp] in context with path [/Resource] threw exception [ ...
- 其他 Confluence 6 的 cookies 和备注
其他 Confluence 的 cookies 针对 Confluence 的功能,我们还使用了其他的一些 cookies 来存储基本的 产品持久性(product presentation).Con ...
- rbac(基于角色权限控制)-------权限管理
权限管理 创建一个rbac和app的应用,这个rbac主要是用来存放权限的,全称叫做基于角色权限控制 一.先看配置文件合适不,给创建的rbac在配置文件里面设置一下 找到INSTALLED_APPS= ...
- SQLmap注入启发式检测算法
1.经过setTargetEnv()就进入了checkWaf()的环节 def checkWaf(): """ Reference: http://sec ...
- python中range()函数的用法
python中range()函数可创建一个整数列表,一般用在for循环中. range()函数语法: range(start,stop[,step]) 参数说明: star: 计数从star开始.默认 ...
- jenkins 实现测试发布、预发布、真实发布、回滚发布
主要思路: 1.做三个文件夹,用于放置不可随意修改的配置文件(测试发布.预发布.真实发布) 2.每次都先修改配置文件再进行构建(构建时会先把配置文件复制到构建的目录,再同步到发布的目录) 3.发布完代 ...
- matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量,图片的读入等内容)
MATLAB部分: xmap = repmat( linspace( -regionW/2, regionW/2, regionW), regionH, 1 );%linspace [x1,x2,N] ...