java企业级应用TOMCAT实战
一, tomcat简介
tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,在中小型和并发访问用户不是很多的场所被普遍使用,是开发和调试JSP的首选,所有静态文件交给nginx处理,所有的动态文件交给tomcat处理。还有resin,weblogic(商用)
二,tomcat安装
1.软件准备:
apache-tomcat-8.0.41.zip
jdk-8u11-linux-x64.tar.gz
2.解压到指定目录(安装java环境)
tar -xf jdk-8u11-linux-x64.tar.gz -C /usr/local/java
3.验证
java -version
4.安装tomcat
unzip apache-tomcat-8.0.41.zip -C /usr/local/tomcat
三,tomcat启动及日志
/usr/local/tomcat/bin/
-
-
- /usr/local/tomcat/bin/shundown.sh 关闭tomcat
- /usr/local/tomcat/bin/start.sh 启动tomcat
- /usr/local/tomcat/bin/version.sh 查看tomcat信息
-
/usr/local/tomcat/conf/
-
-
- 用以配置tomcat的xml及DTD文件
-
/usr/local/tomcat/logs/
-
-
- catalina和其他web应用程序的日志文件
-
/usr/local/tomcat/temp/
-
-
- 临时文件
-
/usr/local/tomcat/lib/
-
-
- 存放web应用能够访问的JAR包
-
/usr/local/tomcat/license/
-
-
- 认证啥的
-
/usr/local/tomcat/webapps/
- docs #tomcat帮助文档
- examples #web应用实例
- host-manager #管理
- manager #管理
- ROOT #默认网站根目录 index.jsp
###正式环境删除docs examples host-manager manager 以及ROOT下面的所有文件###算是一个小优化!!!
启动:
-
- chown -R root.root /usr/local/java/ /usr/local/tomcat/
- systemctl stop firewalld
- /usr/local/tomcat/bin/shundown.sh
- http://192.168.1.199:8080/
日志:
- catalina.out 这个日志非常占用空间
- catalina.2019-01-15.log 每天都会生成一个文件
- localhost.2019-01-15.log 启动关闭的日志,初始化信息
- localhost_access_log.2019-01-15.txt 访问日志
四,tomcat配置文件
server.xml 主配置文件
tomcat-users.xml 调试状态把服务器状态打开在倒数第二行插入,在测试环境用,切记切记!!!
-
- <role rolename="manager-gui"/>
- <role rolename="admin-gui"/>
- <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
- 详细
五,tomcat主配置文件
server.xml详解
- 不是#号注释 <!-- --> 才是注释
- <Server port="8005" shutdown="SHUTDOWN"> 通过一个命令关闭tomcat 生产环境不要用默认的
- <Connector port="8080" protocol="HTTP/1.1" 默认端口
connectionTimeout="20000" 连接超时
redirectPort="8443" /> 转发另外端口 - https://www.cnblogs.com/sunshine-1/p/8990044.html 网上详解
六,web站点部署
war包放在webapps上面,重启就自动生存一个文件目录,
默认目录~/webapps/ROOT
如果需要更改默认路径的话:
方法一
添加如下代码到server.xml(大概在125行)
<Context path="/eml" docBase="xxxxxx" debug="0" reloadbale="true" privileged="true">
- Context:表示一个web应用程序,通常为war程序
- docpath:应用程序胡路径或则是war文件存放的路径,可以使用相对的路径,起始位置为Context所属Host中appBase定义的路径
- path:表示此web应用程序的URL的前缀。这样请求的url为http://localhost:8888/path/****
- reloadbale:这个属性非常重要,如果为true,则tomcat会自动检测应用程序的、WEB-INF/LIB 和WEB-INF/classes目录的变化,自动装载新的应用程序的时候,可以在不重启tomcat的情况下改变应用程序
重启tomcat
方法二:
修改appBase:/xxxxxxxxxxxx/xxxxx/xxxxx
多实例最好所有的项目都在一个目录下
七,tomcat多实例
1.复制tomcat目录
- cp -a /usr/local/tomcat tomcat_1 -a 复制目录而且权限一样
- cp -a /usr/local/tomcat tomcat_2
2.区分不同实例就是端口号不一样
-
- <Server port="8005" shutdown="SHUTDOWN"> #更改关闭端口
- <Connector port="8080" protocol="HTTP/1.1" #更改默认监听端口
- <Context path="/eml" docBase="eml" debug="0" reloadbale="true" privileged="true"> #更改默认目录
3.然后再根据彼此的绝对路径重新启动
八,tomcat集群(其实非常简单!!!)
nginx用来做反向代理
第一步:新建代理池
upstream tomcattool {
server 192.168.1.10:8081 weight=1 max_fail=3 fail_timeout=20s
server 192.168.1.11:8082 weight=1 max_fail=3 fail_timeout=20s
}
第二步:更改server标签
server_name 域名或则ip
proxy_pass http://tomcattool
九,tomcat安装jpress
环境准备:
apache-maven-3.6.0-bin.tar.gz
jpress-web-newest.war
安装maven环境
解压maven -C /usr/local/maven
添加到环境变量/etc/profile 然后再source
mvn --version 验证
安装jpress
放到响应目录/usr/local/tomcat/jpress
jar xf jpress-web-newest.war 手动解压
十,systemd一统天下(我也不知道为什么在这里插这个)
/etc/rc.local
/usr/lib/systemd/system
/etc/system/system
十一,zabbix监控tomcat
参照:http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/
http://blog.51cto.com/moerjinrong/2062945
因为环境不一样不做深究
二,tomcat调优
1.安全优化
- 降权启动,普通用户启动
- telnet 管理端口保护
- ajp连接端口禁用
- 禁用管理端,删除没有用的目录
2.性能优化
屏蔽dns查询 enableloouups="fault"
最大连接数最小连接数看实际需求
tomcat非常消耗内存php轻量级,java重量级
jvm调优
内存:8G 的内存,默认给1.5G到2G,给系统的4分之1
https://www.cnblogs.com/xingzc/p/5756119.html 有时间可以慢慢看
调优总结,一般就是优化内存,CPU,内存,I/O网络,安全等等!!!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法