tomcat

tomcat官网

部署tomcat

wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.14/bin/apache-tomcat-10.0.14.tar.gz --no-check-certificate
tar -xf apache-tomcat-10.0.14.tar.gz
cp -r apache-tomcat-10.0.14 /usr/local/tomcat/
yum -y install java-1.8.0-openjdk

启动tomcat(tomcat占用8005、8009、8080端口)

systemctl disable firewalld.service --now
sed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/config
/usr/local/tomcat/bin/startup.sh

启动tomcat失败解决方案:

由于tomcat服务开启时需要大量随机字符,但系统中随机字符不够多的话会导致tomcat服务启动失败

  • 方案1

    mv /dev/random /dev/random.bak
    ln -s /dev/urandom /dev/random
  • 方案2

    yum -y install rng-tools
    systemctl start rngd

关闭tomcat

/usr/local/tomcat/bin/shutdown.sh

killall java

测试tomcat

静态页面

cd /usr/local/tomcat
echo test > webapps/ROOT/test.html

动态页面

cat > /usr/local/tomcat/webapps/ROOT/test.jsp <<EOF
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
EOF

tomcat搭建虚拟主机

<Host name="域名" appBase="网站页面位置">

</Host>

vim /usr/local/tomcat/conf/server.xml

<Host name="www.b.com"  appBase="web_b"> //创建虚拟主机
unpackWARs="true" autoDeploy="true"> //自动解war包,自动更新代码
</Host>

    <Host name="www.a.com"  appBase="webapps"
           unpackWARs="true" autoDeploy="true">
。。。
    </Host>

测试

mkdir -p /usr/local/tomcat/web_b/ROOT
echo "tomcat-A" > /usr/local/tomcat/webapps/ROOT/index.html
echo "tomcat-B" > /usr/local/tomcat/web_b/ROOT/index.html

重启tomcat、添加hosts文件解析a网站和b网站、访问

curl www.a.com:8080

curl www.b.com:8080

打war包

yum -y install java-1.8.0-openjdk-devel             #安装制作war包的依赖工具
jar -cf b.war /var/log #使用jar打war包
cp b.war web_b/ #将war包放入虚拟主机的网页目录
ls web_b/ #因为开启了unpackWARs,所以已经自动解开

 

上一篇:宝塔面板部署springboot项目,ssh配置(linux)


下一篇:Spring Boot:Web项目以War包形式部署到外部tomcat部署