目录
tomcat简介
tomcat是一个开源、免费、轻量级的web服务器,只支持部分JavaEE规范(Servlet、JSP),适合部署中小型java web项目。
tomcat、nginx、apache都具有处理静态资源的能力,但tomcat处理静态资源的能力明显不如nginx、apache。
一般使用nginx+tomcat,nginx代理静态资源、反向代理tomcat集群。
windows下使用tomcat
双击startup.bat启动,关闭窗口或双击shutdown.bat停止。=
如果双击启动失败,可以在日志文件中查看tomcat的启动过程:logs/catalina.2020-01-01.log。
可以命令行cd到tomcat的bin目录,执行startup.bat启动。命令行启动有个好处:会打印日志信息,启动失败方便查看原因。
linux下使用tomcat
将tar.gz放在/usr/local下
# 解压
tar -xzvf apache-tomcat-8.5.55.tar.gz
# 删除.tar.gz
rm apache-tomcat-8.5.55.tar.gz
#重命名
mv apache-tomcat-8.5.55 tomcat
# 防火墙开启8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重新加载防火墙配置
firewall-cmd --reload
配置环境变量(可选)
vim /etc/profile
# 末尾加上如下内容
#tomcat config
export CATALINA_HOME=/usr/local/tomcat
# 配置立即生效
source /etc/profile
这一步可省略,因为启动tomcat时默认的CATALINA_HOME路径就是startup所在的tomcat主目录。
cd到tomcat的bin目录
./startup.sh #启动
./shutdown.sh #停止
# 或者下面的方式
sh startup.sh
sh shutdown.sh
部署项目
把war包放在webapps下即可,tomcat会自动部署。
tomcat常用的日志文件
- catalina.{yyyy-MM-dd}.log tomcat的启动日志,启动失败时可在此文件中找失败原因
- catalina.out tomcat的启动日志+程序输出的日志
- localhost.{yyyy-MM-dd}.log 应用程序初始化日志
- localhost_access_log.{yyyy-MM-dd}.txt url请求日志
最常用的是cattalina的那2个日志文件
常见问题
tomcat启动失败
常见原因
- 未配置jdk。tomcat依赖jdk,需先配置jdk。
- 端口占用:可以杀死占用端口的进程,也可以在conf/server.xml中重新配置tomcat使用的端口(默认8080)
# windows
# 获取占用8080端口的进程的pid,假设pid是1919
netstat -ano | findstr 8080
#根据pid查看该进程的详细信息
tasklist | findstr 1919
#杀死进程,/f是强制杀死。也可以Ctrl+Shift+Esc到任务管理器中杀死进程
taskkill /pid /f 1919
#linux
netstat -nltp | grep 8080
kill -9 1919
最后一列是pid,有时候会看到2列相同的pid,1个是ipv4的、1个是ipv6的。
win tomcat 窗口中文乱码
原因:tomcat的日志默认使用utf-8字符集,windows的cmd默认使用gbk字符集,导致中文乱码。
解决:conf -> logging.properties -> 搜索console,把UTF-8改为GBK
java.util.logging.ConsoleHandler.encoding = GBK
重启tomcat生效
linux tomcat 时区不对
常见的问题是比正常时间少了8小时
vim catalina.sh
#开头添加一行,GMT+8,GMT+08,Asia/Shanghai 都可以
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+8"
tomcat启动时报错 too low setting for -Xss
# 编辑conf下的catalina.properties
vim conf/catalina.properties
# /搜索关键字
/tomcat.util.scan.StandardJarScanFilter.jarsToSkip=
# 加一个路径,跳过检测
bcprov*.jar