Tomcat服务配置
1、Tomcat概述以及运行原理
2、Tomcat环境搭建
3、Tomcat的配置详情
单点登录
多域名访问
Tomcat性能调优
概念和原理
1、Apache软件基金会
2、开源软件
3、中小型应用服务器
Tomcat市场占比
核心组件 Connector 和 Container
Connector组件
1、接收客户端连接
2、加工处理客户端请求
Container
1、所有的子容器的父接口
2、责任链涉及模式
tomcat的环境安装_windows
如果出现乱码该怎么解决
tomcat默认的是utf-8,而电脑的编码是GB2312
解决办法:找到loging.properties后,将UTF-8修改为GB2312
tomcat的环境安装_linux 与windows差别不大
目录说明
conf
catalina.policy:主要是用来防止JSP代码或者用户代码破坏tomcat的容器
catalina.properties:主要是不能被jsp或者serverlet修改的jar的列表
context.xml:有关于web服务的web.xml的文件位置
logging.properties:配置了日志输出格式等内容
server.xml:是tomcat中最主要的配置文件,在tomcat启动的时候,去构建tomcat容器
tomcat-users.xml:人员或者管理员的信息
web.mxl:配置一些启动信息
lib
是一个共享jar包,也可以放置一些其他的JAR包
logs
在tomcat运行过程中形成的日志
webapps
ROOT目录是一个根目录
work
主要用于存放一些编译的文件
修改tomcat端口号
配置端口号
端口范围:1-65535
port8080:建立http服务
port8005:SHUTDOWN端口监听关闭tomcat请求
port8009:AJP服务,把tomcat与其他的服务器集成
修改内存
内存模型
1、堆内存 2、栈内存 3、静态内存区
OutOfMemoryError:Java heap space异常 项目中引用的JAR比较多,导致内存溢出, 默认最大为内存的1/4,最小为内存的64/1
OutOfMemoryError:PermGen space异常 通常是由于加载的类过多导致的
StackOverflowError异常 通常是由于死循环或者是无限递归导致
set JAVA_OPTS="-server -Xms256m -Xmx512m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=256m"
热部署
什么是热部署
如何配置热部署
1、直接将war包丢进webapps里面
2、server.xml
添加
<context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true">
3、在\conf\Catalina\localhost文件夹底下
放置一个xml文件,比如demo2.xml
添加
<?xml version="1.0" encoding="UTF-8"?>
<context debug="0" docBase="D:\demo1\web" reloadable="true">
数据库连接池与数据源
什么是连接池
如何配置数据源
Web管理
1、管理界面功能简述
2、使用tomcat管理界面发布项目
最核心的三个内容是Server Status、Manager APP、Host Manager
我们首先选择Manage APP,弹出
选择取消后,出现
复制内容到tomcat-user.xml文件下
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
单点登录
1、什么是单点登录
单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。
SSO的定义是在多个应用场景中,用户只需要登录一次就可以访问所有相互信任的应用系统。
CAS
1、开源的企业级单点登录解决方案
2、CAS Server 和 CAS Client
2、单点登录的应用场景
3、如何配置Tomcat单点登录
开源CAS
配置https
多域名访问
1、提高资源利用率
2、如何配置多域名访问
host 标签内 appbase 属性 项目路径,autodeploy='true'热部署,name属性,映射的ip 名
也可以在context 标签内 加 reload='true'
基于IP
基于端口
关闭shutdown端口
1、安装后初始化配置
(1)关闭服务器端口 (2)隐藏版本信息 (3)禁用Tomcat管理页面
(4)自定义错误页面 (5) AJP端口管理 (6)启用cookie的HttpOnly
关闭服务器端口
输入SHUTDONW则关闭,如果通过安全的角度上来说,需要把这个SHUTDONW的指令改成别人不容易猜测到的指令
解决办法:修改SHUTDOWN命令以及修改端口号
修改后
输入SHUTDOWN无法关闭
2、安全规范
修改版本号
为了防止黑客攻击,隐藏tomcat版本信息
修改后
禁用TOMCAT管理界面
防止黑客通过tomcat管理界面去攻击服务器
解决 办法:将ROOT文件夹改名为ROOT_1,再新建一个ROOT文件
再访问管理页面时会出现404
自定义错误页面
直接报404不存在,页面不友好
在web.xml下配置
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
AJP协议
为tomcat和http服务器通信而定制的协议,可以提供比较高的通信协议,如果tomcat前端使用的是apache连接器的时候,会使用到AJP连接器,如果是使用Nginx做的反向代理的话,就可以不使用AJP连接器
不使用AJP连接器,则将其注释即可(只适用于Nginx反向代理)
修改Cookies安全性
启用cookie的HttpOnly,因为使用这个属性,可以提供cookie的安全性
1、保存在客户端的纯文本文件(服务器端写入客户端)
2、cookie实现离线购物车
3、XSS-跨站脚本攻击
解决办法:
context.xml文件下,Context节点 增加属性 useHttpOnly="true"
tomcat安全规范
1、账号管理、认证授权
(1)共享、无关账号
访问hots-manager权限拒绝
解决办法:
(2)口令密码
(3)用户权限
2、日志配置操作
在server.xml里面有一个日志记录的功能
3、设备其他配置操作
对于具备字符串交互的用户,也就是数据交互 的界面,应该支持定时的账户自动登出,来保证数据的安全性
在server.xml里面,找到Connector里面的connectionTimeout
tomcat性能优化
缓存优化(nginx、gzip)
运行模式
(1)BIO:tomcat7以下默认模式
(2)NIO:基于缓存区、非阻塞的I/O
(3)APR:tomcat7及以上默认模式
Tomcat总结
1、tomcat概念、运行原理
2、环境搭建、部署
3、Tomcat常用配置
4、单点登录、多域名访问等(实际开发使用较多的是redis)
5、安全规范、性能优化