一、web应用配置
在tomcat中conf文件夹下,有一个web.xml能够配置相关内容。
1、ServletContext初始化参数
可以使用<context-param>配置servlet的初始化参数,也就是可以在程序中获取到这些配置的参数。
2、会话配置
使用<session-config>进行session配置,参数如下:
3、Servlet配置
主要包含servlet和servlet-mapping配置。当没配置load-on-startup的时候,会在第一次访问的时候加载servlet。
4、Listener配置
Listener主要用于监听servlet中的事件,例如session的创建、修改等。
5、Filter配置
过滤器可以用于对请求进行统一操作,例如认证、日志、加密等。
6、欢迎页面配置
使用welcom-file-list标签配置欢迎页面。
7、错误页面配置
一个web系统,当出现异常的时候,也就是http 500,可以跳转到异常页面。
二、Tomcat管理配置
Tomcat提供的默认项目中,有2个web应用去管理tomcat中的项目和相关配置
- host-manager:虚拟主机管理,需要在tomcat-user.xml中配置相关用户信息
- manager:管理部署在当前服务器的web应用,还能查看整合tomcat的JVM的相关内容,
三、JVM配置
可以在tomcat中配置jvm的相关内容,如堆大小、垃圾回收机制等等。在catalina.sh中可以配置。
四、Tomcat集群
单台tomcat承载能力是有限的,所以可以配置tomcat的集群。一般情况下,都是用nginx作为反向代理。
nginx的转发策略,就是整个集群的转发策略。一般情况,使用keepalive保证nginx的高可用。
session共享问题,nginx可以配置iphash(同ip的会转发的同一个服务器),但是机遇现在的开发环境,基本上都是用redis等中间件来缓存session。
五、Tomcat安全
1、配置安全
- 删除webapps下的所有项目,禁止使用tomcat管理界面
- 注释或删除tomcat-user.xml中的所有用户权限
- 更改关闭tomcat相关执行或禁用,修改指令或者端口设置为-1
- 配置异常错误页面,这样客户端看不到异常信息
2、应用安全
应用需要实现自己的权限模块,建议使用框架进行实现Spring Security、Shiro等等。
3、传输安全
使用https进行数据传输。
六、Tomcat性能优化(基础篇)
1、性能测试
性能调优之前需要对tomcat进行性能测试,只要看吞吐量和响应时间。
可以使用 apachebench 进行相关性能测试。
- yum install httpd-tools
- ab -v 查看版本
- 执行命令:ab -n 1000 -c 100 -p data.json -T application/json 请求地址
- -n:执行请求个数
- -c:一次生产请求的个数
- -p:需要post请求,使用的数据,使用data.json
- -t:进行的时间
- -T:Content-type类型
红色的就是,吞吐量(越大越好),每个请求的耗时。
2、JVM参数设置
1、内存优化
这部分东西涉及到JVM的参数调优,需要很长的篇幅去讲解,并且JVM参数也不是就这么几个,中间涉及到各种情况。
2、垃圾回收策略
现在比较流行的就是G1垃圾回收器,堆内存越大,它的优势越明显,也是需要根据不同场景进行配置。
3、连接器配置
七、Tomcat附加功能
1、WebSocket介绍
双向请求,就是客户端给服务端发送请求,服务端也可以给客户端发送请求。常用于聊天等实时交互功能。
2、Tomcat配置WebSocket
java中WebSocket应用是一系列的WebSocketEndPoint组成。一个Endpoint是一个对象,代表WebSocket链接的一端,对于服务端我们可以像处理http请求一样处理websocket消息。
定义Endpoint2种方式:
- 第一次是编程模式,集成javax.websocket.Endponit并实现其方法
- 第二种是注解式,定一个POJO,并添加@ServerEndponit