tomcat实现多虚拟主机

本文档详述了如何在Ubuntu和CentOS系统上一键安装Oracle JDK与Tomcat,并实现多虚拟主机配置。首先,通过shell脚本自动下载并安装JDK和Tomcat,然后创建虚拟主机目录,制作不同域名的网页内容。接着,修改Tomcat配置文件添加基于域名的虚拟主机,最后更新系统hosts文件。整个过程完成后,可以通过指定域名访问不同的网站内容。
摘要由CSDN通过智能技术生成

1.一键安装 tomcat(Ubuntun也通用,包含oracle jdk的安装)

1.准备文件
[root@centos8:~]#
ll
total 152856
-rw-r--r--  1 root root  11579290 Jul 13 12:29 apache-tomcat-9.0.64.tar.gz
-rw-r--r--  1 root root 144935989 Sep  1  2021 jdk-8u291-linux-x64.tar.gz
#(oracle的jdk下载需要注册,因此放在云盘中自己直接下载
https://www.123pan.com/s/X5m9-YOGj)

2.编写脚本
[root@centos8:~]#
vim install_jdk_tomcat.sh 
#!/bin/bash

DIR=`pwd`
JDK_FILE="jdk-8u291-linux-x64.tar.gz"
TOMCAT_FILE="apache-tomcat-9.0.64.tar.gz"
JDK_DIR="/usr/local"
TOMCAT_DIR="/usr/local"

color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$2" && $MOVE_TO_COL
    echo -n "["
    if [ $1 = "success" -o $1 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $1 = "failure" -o $1 = "1"  ] ;then
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo                                                                                                                              
}



install_jdk(){
if !  [  -f "$DIR/$JDK_FILE" ];then
    color 1 "$JDK_FILE 文件不存在" 
    exit; 
elif [ -d $JDK_DIR/jdk ];then
    color 1  "JDK 已经安装" 
    exit
else 
    [ -d "$JDK_DIR" ] || mkdir -pv $JDK_DIR
fi
tar xvf $DIR/$JDK_FILE  -C $JDK_DIR
cd  $JDK_DIR && ln -s jdk1.8.* jdk 

cat >  /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JDK_DIR/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=\$JAVA_HOME/lib/:\$JRE_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
.  /etc/profile.d/jdk.sh
java -version && color 0 "JDK 安装完成" || { color 1  "JDK 安装失败" ; exit; }

}

install_tomcat(){
if ! [ -f "$DIR/$TOMCAT_FILE" ];then
    color 1 "$TOMCAT_FILE 文件不存在" 
    exit; 
elif [ -d $TOMCAT_DIR/tomcat ];then
    color 1 "TOMCAT 已经安装" 
    exit
else 
    [ -d "$TOMCAT_DIR" ] || mkdir -pv $TOMCAT_DIR
fi
tar xf $DIR/$TOMCAT_FILE -C $TOMCAT_DIR
cd  $TOMCAT_DIR && ln -s apache-tomcat-*/  tomcat
echo "PATH=$TOMCAT_DIR/tomcat/bin:"'$PATH' > /etc/profile.d/tomcat.sh
id tomcat &> /dev/null || useradd -r -s /sbin/nologin tomcat

cat > $TOMCAT_DIR/tomcat/conf/tomcat.conf <<EOF
JAVA_HOME=$JDK_DIR/jdk
EOF

chown -R tomcat.tomcat $TOMCAT_DIR/tomcat/

cat > /lib/systemd/system/tomcat.service  <<EOF
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target 

[Service]
Type=forking
EnvironmentFile=$TOMCAT_DIR/tomcat/conf/tomcat.conf
ExecStart=$TOMCAT_DIR/tomcat/bin/startup.sh
ExecStop=$TOMCAT_DIR/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now tomcat.service &> /dev/null
systemctl is-active tomcat.service &> /dev/null &&  color 0 "TOMCAT 安装完成" || { color 1 "TOMCAT 安装失败" ; exit; }

}

install_jdk 

install_tomcat

#通过函数调用进行实现,只要注释掉最后的调用关系,就可以作为单独的安装部分使用,比如注释掉install_jdk ,则此脚本就只安装tomcat,不安装jdk。

3.执行脚本
[root@centos8:~]#
bash install_jdk_tomcat.sh 

2.tomcat实现多虚拟主机

1.新建虚拟主机目录
[root@centos8:~]#
mkdir /data/website{1,2,3}/ROOT -pv

2.制作页面文件
[root@centos8:~]#
echo www.a.com /data/website1/ROOT/index.html >> /data/website1/ROOT/index.html
[root@centos8:~]#
echo www.b.com /data/website2/ROOT/index.html > /data/website2/ROOT/index.html
[root@centos8:~]#
echo www.c.com /data/website3/ROOT/index.html > /data/website3/ROOT/index.html

3.修改配置文件,添加对应的基于域名的虚拟主机,实现多台在虚拟主机
[root@centos8:~]#
systemctl restart tomcat  #添加Host,在 </Host>和</Engine>之间添加
......
</Host>
      <Host name="www.a.com"  appBase="/data/website1"
            unpackWARs="true" autoDeploy="true">
        </Host>
      <Host name="www.b.com"  appBase="/data/website2"
            unpackWARs="true" autoDeploy="true">
        </Host>
      <Host name="www.c.com"  appBase="/data/website3"
            unpackWARs="true" autoDeploy="true">
        </Host>
    </Engine>
  </Service>
</Server>
[root@centos8:~]#
systemctl restart tomcat

3.修改主机host文件
C:\Windows\System32\drivers\etc\hosts  添加对应域名和ip
10.0.0.18 www.a.com   www.b.com   www.c.com

4.访问测试www.a.com:8080



image-20220714131803933
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值