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 配置文件和一些文档 ...
随机推荐
- Django 配置(一)开启服务
注:这里使用的是命令行创建,当然也可以用 pycharm 自带的 django 项目创建更加简便. 安装django pip install django 创建项目 django-admin star ...
- git 创建分支
- Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...
- Windows上的程序员神器Cmder
用过Windows版本Git的都知道Git自带了Git Bash,这个在很大程度上满足了我的需求,随着Git的版本升级越来越好用 安装Cmder Cmder官网,它把conemu,msysgit和cl ...
- linux学习之uniq
uniq最经常用的是统计次数,通常先排序,然后uniq -c cat a.txt |sort -nr |uniq -c
- 牛客网 python 求解立方根
•计算一个数字的立方根,不使用库函数 详细描述: •接口说明 原型: public static double getCubeRoot(double input) 输入:double 待求解参数 返回 ...
- vuejs中使用echarts
<style scoped> .content { /*自行添加样式即可*/ } #main { /*需要制定具体高度,以px为单位*/ height: 400px; } </sty ...
- 如何在cmd中执行python文件
打开cmd终端 输入python 然后再输入要执行文件的路径 就可以把python文件运行起来 ...
- 刷《剑指offer》笔记
本文是刷<剑指offer>代码中的学习笔记,学习ing.. 衡量时间和空间. 递归的代码较为简洁,但性能不如基于循环的实现方法.
- linux下安装pip与pip安装
在执行脚本的时候,说有库找不到 pip安装的时候说不认识pip 安装pip 使用脚本安装和升级pip wget https://bootstrap.pypa.io/get-pip.py 运行脚本pyt ...