内容简介:Tomcat
简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用 C语言 实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
Tomcat安装
搭建tomcat运行环境需分两步实现:jdk+tomcat,安装方式有两种,系统自带的rpm包安装及其使用官方的二进制包,同时jdk的安装方式也有两种,系统自带的rpm包及官方下载的oracle的jdk的rpm包。
- 系统自带的openjdk+tomcat
yum list all *jdk* #查看yum仓库中jdk版本 yum -y install java-1.8.0-openjdk_x86_64 java-1.8.0-openjdk-devel_x86_64 yum -y install tomcat tomcat-lib tomcat-webapps tomcat-admin-webapp
- 使用Oracle JDK和tomcat提供的编译完成的程序包
rpm -ivh jdk-8u131-linux-x64.rpm
tar -xf apache-tomcat-9.0.0.M21.tar.gz -C /usr/local/
cd /usr/local
ln -sv apache-tomcat-9.0.0.M21 tomcat
vim /etc/profile.d/tomcat.sh #通过官网下载二进制包及其rpm安装的tomcat和jdk需导入环境变量
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
. /etc/profile.d/tomcat.sh
vim /etc/profile.d/java.sh #java导入环境变量
JAVA_HOME=/usr/java/latest
PATH=$JAVA_HOME/bin:$PATH
. /etc/profile.d/java.sh
tomcat程序环境:
tomcat的目录结构
[root@centos704 ~]#cd /usr/share/tomcat/ #系统自带方式安装
[root@centos704 tomcat]#ls
bin conf lib logs temp webapps work
bin:脚本,及启动时用到的类;
conf:配置文件目录;
lib:库文件,Java类库,jar;
logs:日志文件目录;
temp:临时文件目录;
webapps:webapp的默认目录;
work:工作目录;
rpm包安装的程序环境:
配置文件目录:/etc/tomcat
主配置文件:server.xml
webapps存放位置:/var/lib/tomcat/webapps/
examples
manager
host-manager
docs
Unit File:tomcat.service
环境配置文件:/etc/sysconfig/tomcat
tomcat的配置文件:
server.xml:主配置文件;
web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
context.xml:每个web都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
tomcat-users.xml:用户认证的账号和密码文件;
catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略;
catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
logging.properties:日志系统相关的配置;
tomcat的组件: server.xml
<Server>
<Service>
<connector/>
<connector/>
<Engine>
<Host />
<Host>
<Context/>
...
</Host>
</Engine>
</Service>
</Server>
每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型: 顶级组件:Server
服务类:Service
连接器:http, https, ajp(apache jserv protocol)
容器类:Engine, Host, Context
被嵌套的组件:valve, logger, realm, loader, manager
集群类组件:listener, ...
启动tomcat配置应用
部署(deploy)webapp的相关操作:
deploy:将webapp的源文件放置于目标目录、配置tomcat服务器能够基于context.xml文件中定义的路径来访问此webapp;将其特有的类通过class loader装载至tomcat:
有两种方式:
自动部署:auto deploy
手动部署:
(1) 冷部署:把webapp复制到指定位置,而后才启动tomcat;
(2) 热部署:在不停止tomcat的前提下进行的部署:
部署工具:manager app、ant脚本、tcd(Tomcat Client Deployer)等;
undeploy:反部署,停止webapp,并从tomcat实例上拆除其部署文件和部署名;
stop:停止,不再向用户提供服务;
start:启动处于“停止”状态的webapp;
redeploy:重新部署;
tomcat自带的应用程序:
manager app: webapp管理工具;
host manager: VHosts管理工具;
手动添加一个测试应用目录:
1、创建一个webapps特有的目录结构
[root@centos704 ~]#cd /usr/share/tomcat/webapps/
[root@centos704 webapps]# mkdir -pv myapp/{class,WEB-INF,META-INF,lib}
2、提供一个webapps的主页面
[root@centos704 webapps]#vim index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<% out.println("hello world"); %>
</body>
</html>
3、启动应用程序,访问默认主页面及其myapp页面
systemctl start tomat
网页测试
启动管理页面 工具 编辑tomcat-user.xml配置文件,添加如下配置重启服务。
管理页面可以对web app进行部署,卸载,开启,关闭,reload,updat
[root@centos7 tomcat]#vim conf/tomcat-users.xml <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
实战配置LAMT实现动静分离
基于LAMT实现方式有两种,一种基于http,另一种基于ajp,如下配置:
前端调度器
(1).基于http
[root@centos7 ~]#vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html" #注释http默认页面
[root@centos7 conf.d]#vim http_tomcat.conf #proxy_http_module代理配置
<VirtualHost *:80>
ServerName tc1.magedu.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://node3.beijing.com:8080/
ProxyPassReverse / http://node3.beijing.com:8080/
<Location />
Require all granted
</Location>
</VirtualHost>
2、使用ajp机制,使用虚拟主机
[root@centos7 conf.d]#vim ajp_tomcat.conf
<VirtualHost *:80>
ServerName tc1.magedu.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://node3.beijing.com:8009/
ProxyPassReverse / ajp://node3.beijing.com:8009/
<Location />
Require all granted
</Location>
</VirtualHost>
[root@centos7 ~]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@centos7 ~]#systemctl restart nginx
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- CentOS7 linux 安装 jdk、tomcat + 配置 tomcat 开机启动 + tomcat 快捷启动命令
- 【Tomcat学习笔记】11-Tomcat中的JMX
- Tomcat源码分析 (五)----- Tomcat 类加载器
- Tomcat源码分析 (二)----- Tomcat整体架构及组件
- tomcat和tomcat-embed的区别比较
- IDEA下tomcat启动后 server乱码,Tomcat Catalina Log和Tomcat Localhost Log乱码问题的解决
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Web Design
Ethan Watrall、Jeff Siarto / O’Reilly Media, Inc. / 2009-01-02 / USD 49.99
Want to know how to make your pages look beautiful, communicate your message effectively, guide visitors through your website with ease, and get everything approved by the accessibility and usability ......一起来看看 《Head First Web Design》 这本书的介绍吧!