openjdk 在常见的Linux发行版中, 包仓库中默认是有的, 只需要通过发行版对应的yum或者apt 就可以安装
OracleJDK 需要先到Oracle 官网 https://www.oracle.com/java/technologies/downloads/ , 注册账号之后,才能下载
安装参见脚本 OracleJDK安装
java -version
tomcat是java web应用服务器, 是servlet和jsp容器,同时也是一个静态web服务器
官网 https://tomcat.apache.org/
tomcat 各版本的区别 https://tomcat.apache.org/whichversion.html
yum install tomcat*
apt install tomcat9
参考脚本 tomcat二进制包安装
目录 | 说明 |
---|---|
bin | 服务启动、停止等相关程序和文件 |
conf | 配置文件 |
lib | 库目录 |
logs | 日志目录 |
webapps | 应用程序,应用部署目录 |
work | jsp编译后的结果文件,建议提前预热访问,升级应用后,删除此目录数据才能更新 |
在tomcat安装目录下的 conf 子目录中,有以下的 tomcat 的配置文件
文件名 | 说明 |
---|---|
server.xml | 主配置文件 |
web.xml | 每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件 |
context.xml | 用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件 |
tomcat-users.xml | 用户认证的账号和密码文件 |
catalina.policy | 当使用security选项启动tomcat时,用于为tomcat设置安全策略 |
catalina.properties | Tomcat 环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数 |
logging.properties | Tomcat 日志系统相关的配置,可以修改日志级别和日志路径等 |
注意:配置文件大小写敏感
tomcat有五类日志:catalina、localhost、manager、admin、host-manager
catalina.out
catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat 运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,我们 需要借助其他工具进行切割(注意:catalina.out文件如果过大会影响)
catalina.YYYY-MM-DD.log
catalina.{yyyy-MM-dd}.log是tomcat自己运行的一些日志,这些日志还会输出到catalina.out,但是应 用向console输出的日志不会输出到catalina.{yyyy-MM-dd}.log,它是tomcat的启动和暂停时的运行日 志,注意,它和catalina.out是里面的内容是不一样的
localhost.YYYY-MM-DD.log
localhost.{yyyy-MM-dd}.log主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获 而输出的日志,它也是包含tomcat的启动和暂停时的运行日志,但它没有catalina.2018-09-19.log日志全。 它只是记录了部分日志
localhost_access_log.YYYY-MM-DD.txt
这个是访问tomcat的日志,请求时间和资源,状态码都有记录
host-manager.YYYY-MM-DD.log
这个是放tomcat的自带的manager项目的日志信息的,未看到有什么重要的日志信息
manager.YYYY-MM-DD.log
这个是tomcat manager项目专有的日志文件
日志格式 https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Access_Logging
添加下面一行,注意是一行,不要换行
pattern="{"clientip":"%h","ClientUser":"%l","authenticated":"%u","AccessTime":"%t","method":"%r","status":"%s","SendBytes":"%b","Query?string":"%q","partner":"%{Referer}i","AgentVersion":"%{User-Agent}i"}"
Tomcat中默认网站根目录是$CATALINA_BASE/webapps/ 在Tomcat的webapps目录中,有个非常特殊的目录ROOT,它就是网站默认根目录。 将eshop解压后的文件放到这个$CATALINA_BASE/webapps/ROOT中。 bbs解压后文件都放在$CATALINA_BASE/webapps/forum目录下。 $CATALINA_BASE/webapps下面的每个目录都对应一个Web应用,即WebApp 最终网站链接有以下对应关系
http://localhost/ 对应于eshop的应用WebApp,即$CATALINA_BASE/webapps/ROOT/目录, http://localhost/forum/ 对应于forum的应用WebApp,即$CATALINA_BASE/webapps/forum/
war war 包直接放到webapps下,会自动解压
jar java -jar xxx.jar
tomcat 提供了基于WEB的管理页面,默认由 tomcat-admin-webapps.noarch包提供相关文件
打开浏览器可以访问tomcat管理的默认管理页面,点击server status 和 Manager APP 两个按钮都会出现下面提示403的错误提示 默认的管理页面被禁用,启用方法如下
修改webapps/manager/META-INF/context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.
(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreve
ntionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
删除allow 或者修改它允许其他主机访问
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|10\.0\.0\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.
(?:Boolean|Integer|Long|Number|String)|org\.apach
e\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.
(?:Linked)?HashMap"/>
</Context>
#修改WebApp的配置无需重启服务即可生效
修改conf/conf/tomcat-users.xml, 这个文件是在 conf/server.xml中指定的
pathname="conf/tomcat-users.xml" #由此文件指定授权用户信息
用户认证,配置文件是conf/tomcat-users.xml。打开tomcat-users.xml,我们需要一个角色manager-gui
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcatusers.xsd"
version="1.0">
#加下面两行,指定用户和密码
<role rolename="manager-gui"/>
<user username="admin" password="123456" roles="manager-gui"/>
</tomcat-users>
#修改全局配置文件需要重启服务生效
systemctl restart tomcat
端口8005/tcp 安全配置管理 8005是Tomcat的管理端口,默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个 字符串,tomcat接收到后就会关闭此Server
配置修改位置 在conf/server.xml 有以下内容