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端口)

8080网站服务端口

8009连接其他网站服务端口(新版tomcat默认关闭)

8005关闭tomcat时需要的端口

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搭建虚拟主机

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,所以已经自动解开

tomcat访问路径与页面位置

  • 测试1:
      <Host name="www.b.com"  appBase="web_b">          
            unpackWARs="true" autoDeploy="true">        
      <Context path="" docBase="" />				//docBase:定义页面二级目录(默认为ROOT)
      </Host>

docBase="/usr/local/tomcat/abc" //如果docBase设置了绝对路径,那么会屏蔽appBase的路径

  • 测试2:
      <Host name="www.b.com"  appBase="web_b">          
            unpackWARs="true" autoDeploy="true">        
      <Context path="/test" docBase="abc" />				//path:匹配用户访问网站的路径,当用户访问对应路径时显示docBase中定义的页面
      </Host>

效果:curl www.b.com:8080 显示的是web_b/ROOT/下的页面

​ curl www.b.com:8080/test/ 显示的是web_b/abc/下的页面

开启日志

      <Host name="www.b.com"  appBase="web_b"
            unpackWARs="true" autoDeploy="true">
      <Context path="/test" docBase="abc" />
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"			//开启日志功能
               prefix="www-b-com_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

日志存储在/usr/local/tomcat/logs中

java网站项目

Macen官网

项目素材

tar -xf apache-maven-3.6.3-bin.tar.gz
tar -xf cms.tar.gz
tar -xf m2.tar.gz
cp -r apache-maven-3.6.3 /usr/local/maven
yum -y install java-1.8.0-openjdk java-devel mariadb mariadb-server
systemctl start mariadb

修改镜像地址,158行下添加
vim /usr/local/maven/conf/settings.xml
<mirror>
          <id>nexus-aliyun</id>
          <mirrorOf>*</mirrorOf>
          <name>Nexus aliyun</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

配置数据库
cd CMS/
cp src/main/resources/shishuocms.properties .
mysqladmin password 12345678
mysql -uroot -p12345678 < sql/install.sql

构建项目
/usr/local/maven/bin/mvn clean package

启用网站项目
rm -rf /usr/local/tomcat/webapps/ROOT/
cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

tomcat搭建安全网站

官方文档

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

<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="8443"
    maxThreads="150"
    SSLEnabled="true">
  <SSLHostConfig>
    <Certificate
      certificateKeystoreFile="/usr/local/tomcat/keystore"
      certificateKeystorePassword="123456"
      type="RSA"
      />
    </SSLHostConfig>
</Connector>

生成证书
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore

重启服务
测试:curl -k https://127.0.0.1:8443
posted @   barry_zou  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示