本文共 1975 字,大约阅读时间需要 6 分钟。
tomcat是一个开源、免费、轻量级的web服务器,只支持部分JavaEE规范(Servlet、JSP),适合部署中小型java web项目。
tomcat、nginx、apache都具有处理静态资源的能力,但tomcat处理静态资源的能力明显不如nginx、apache。
一般使用nginx+tomcat,nginx代理静态资源、反向代理tomcat集群。
tomcat常用的日志文件
最常用的是cattalina的那2个日志文件
双击startup.bat启动,关闭窗口或双击shutdown.bat停止。=
如果双击启动失败,可以在日志文件中查看tomcat的启动过程:logs/catalina.2020-01-01.log。
可以命令行cd到tomcat的bin目录,执行startup.bat启动。命令行启动有个好处:会打印日志信息,启动失败方便查看原因。
将tar.gz放在/usr/local下
# 解压tar -xzvf apache-tomcat-8.5.55.tar.gz# 删除.tar.gzrm 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 configexport CATALINA_HOME=/usr/local/tomcat# 配置立即生效source /etc/profile
这一步可省略,因为启动tomcat时默认的CATALINA_HOME路径就是startup所在的tomcat主目录。
cd到tomcat的bin目录
./startup.sh #启动./shutdown.sh #停止# 或者下面的方式sh startup.shsh shutdown.sh
常见原因
# windows# 获取占用8080端口的进程的pid,假设pid是1919netstat -ano | findstr 8080#根据pid查看该进程的详细信息tasklist | findstr 1919#杀死进程,/f是强制杀死。也可以Ctrl+Shift+Esc到任务管理器中杀死进程taskkill /pid /f 1919#linuxnetstat -nltp | grep 8080kill -9 1919
最后一列是pid,有时候会看到2列相同的pid,1个是ipv4的、1个是ipv6的。
原因:tomcat的日志默认使用utf-8字符集,windows的cmd默认使用gbk字符集,导致中文乱码。
解决:conf -> logging.properties -> 搜索console,把UTF-8改为GBK
java.util.logging.ConsoleHandler.encoding = GBK
重启tomcat生效
常见的问题是比正常时间少了8小时
vim catalina.sh#开头添加一行,GMT+8,GMT+08,Asia/Shanghai 都可以JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+8"
# 编辑conf下的catalina.propertiesvim conf/catalina.properties# /搜索关键字/tomcat.util.scan.StandardJarScanFilter.jarsToSkip=# 加一个路径,跳过检测bcprov*.jar
转载地址:http://lgqlb.baihongyu.com/