实际环境信息
系统:Ubuntu18.04/mac/linxu
需要JDK:1.8
Tomcat: 8.5.78
一、下载安装包
到Apache Tomcat官网,选择对应版本的tar.gz包下载(地址:https://tomcat.apache.org/download-80.cgi)
选择下载地址后,使用wget下载,
// 进入要下载的目录,一般如下
cd /usr/local
// 使用wget 下载安装包
sudo wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.78/bin/apache-tomcat-8.5.78.tar.gz
// 解压安装包
sudo tar -zxvf apache-tomcat-8.5.78.tar.gz
// 添加可读与执行权限
sudo chmod 755 -R apache-tomcat-8.5.78
// 配置java环境变量,因为通过bin/startup.sh启动tomcat时需要java运行环境的变量,如:
// ubuntu@VM-0-9-ubuntu:/usr/local/apache-tomcat-8.5.78/bin$ sudo ./startup.sh
// Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
// At least one of these environment variable is needed to run this program
我们可以直接在tomcat启动脚本中加入java配置
cd bin
sudo vi startup.sh
// 在startup.sh顶部加入java环境变量配置,如果在底部加入因运行时机会不起作用,配置参考如下
# java environment config
export JAVA_HOME=/usr/local/jdk1.8.0_321
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
// 然后即可启动tomcat服务
sudo /usr/local/apache-tomcat-8.5.78/bin/startup.sh
二、java 安装
网盘下载方式稍后补充,不需要登陆oracle。
直接通过oracle官网下载(https://www.oracle.com/java/technologies/downloads/#java18),需要先登陆。根据自己的cpu和系统下载对应版本,我下载的是如下:
服务器上直接wget下载会有问题,因为oracle下载时需要点击确认按钮。
直接通过浏览器下载后,在推送到服务器,在服务器上解压。
scp ~/Downloads/jdk-8u321-linux-x64.tar.gz ubuntu@123.12.0.12:/home/ubuntu/
// 在服务器上把压缩包移动需要的地方,解压
sudo mv /home/ubuntu/jdk-8u321-linux-x64.tar.gz /usr/local/jdk-8u321-linux-x64.tar.gz
// 解压安装包(/usr/local/jdk-8u321-linux-x64.tar.gz)
sudo tar -zxvf jdk-8u321-linux-x64.tar.gz
// 然后配置环境变量即可
# java environment config
export JAVA_HOME=/usr/local/jdk1.8.0_321
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
三、tomcat配置
默认端口修改
tomcat默认地址为http://localhost:8080/,端口号是8080,可在配置文件中修改。
配置文件apache-tomcat-8.5.31/conf/server.xml,内容如下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
管理用户配置
tomcat的用户配置在apache-tomcat-8.5.31/conf/tomcat-users.xml 文件中,默认没有开启。
Tomcat已经为我们定义了4种不同的角色(rolename),以下是Tomcat Manager 4种角色的大致介绍(下面URL中的*为通配符):
manager-gui:允许访问html接口(即URL路径为/manager/html/*)
manager-script:允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx:允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status:允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
用户配置格式参考:
外网访问App管理页面
tomcat的app管理页面默认是不可以外网访问的,如果要在外网访问需要更改配置,如下:
地址:http://xxxx:8080/manager/html
需要修改的文件有两个:
apache-tomcat-8.5.31/webapps/host-manager/META-INF/context.xml
apache-tomcat-8.5.31/webapps/manager/META-INF/context.xml
两个文件修改内容一样,如下:
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" sameSiteCookies="strict" />
<!-- 屏蔽仅内网操作管理页面的限制 <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
<!-- 添加允许外网任意ip可操作管理页面 -->
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>
解释:allow="^.*$" /> 就是允许所有的IP地址来管理。之前默认是只允许127.0.0.1 本机管理。
开发时自动更新配置文件
在开发时,为了让tomcat能够自动重新加载我们修改过的代码和配置,可以对Tomcat的context.xml文件进行设置。
<!-- 在<context>标签中,加上reloadable属性,并且将值设为true -->
<Context reloadable="true">
<!-- 注意: reloadable设为true,会影响tomcat性能;当在正式部署时,需要改成false -->