Centos7 Tomcat 安装与多站点部署

总体分为三部分:1、java环境。2、tomcat环境。3、JavaWeb项目部署

java环境安装

java参考
java-1.8.0-openjdk是jre运行环境
openjdk-devel 是java开发环境
/etc/profile文件就是centos7的环境变量配置文件。这个文件是每个用户登录时都会运行的环境变量设置

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
## 加入java环境变量
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64">> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar">> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin">> /etc/profile

source /etc/profile

java -version
显示以下信息安装成功

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

安装tomcat

tomcat参考
下载地址
linux tomcat-8.5.32下载链接
下载位置8.5.32->Binary Distributions-> core->tar.gz (pgp, sha1, sha512)

cd /usr/local 
wget https://www.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
tar -zxvf apache-tomcat-8.5.32.tar.gz
rm -f apache*.tar.gz
cd apache-tomcat-8.5.32
/usr/local/apache-tomcat-8.5.32/bin/startup.sh
systemctl start firewalld.service
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload 

出现Tomcat started.即安装成功
此处注意两点:
1.tomcat默认8080端口,防火墙需要放行
2.jre路径必须正确(以个人自己安装的路径为准),否则无法访问tomcat

停止tomcat的命令是:/usr/local/apache-tomcat-8.0.39/bin/shutdown.sh

将tomcat设置成service

新建空白文件tomcat
cat /dev/null > /etc/rc.d/init.d/tomcat
同时编辑
sublime text3 Ctrl+H 开启左侧*(正则匹配) 输入$(行尾) 输入^(行首)
Find ALL即可

echo -e '#!/bin/sh \n #chkconfig: 2345 10 90\n #description: Starts and Stops the Tomcat daemon.\n #by lizh\n ##############################################\n #Startup script for Tomcat on Linux\n \n \n #filename tomcat.sh\n \n \n #Make sure the Java and the tomcat installation path has been added to the PATH\n JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64                  #JDK安装目录\n CATALINA_HOME=/usr/local/apache-tomcat-8.5.32           #tomcat安装目录\n export JAVA_HOME\n export CATALINA_HOME\n \n \n ###############################################\n start_tomcat=$CATALINA_HOME/bin/startup.sh              #tomcat启动文件\n stop_tomcat=$CATALINA_HOME/bin/shutdown.sh                  #tomcat关闭文件\n start() { \n \t \t echo -n "Starting tomcat: "\n \t \t${start_tomcat}\n \t \techo "tomcat start ok."\n }\n stop() {\n \t \techo -n "Shutting down tomcat: "\n \t \t${stop_tomcat}\n \t \techo "tomcat stop ok."\n }\n # See how we were called\n \n case "$1" in\n \t start)\n \t\t  start\n \t \t;;\n \t stop)\n \t \tstop\n \t \t;;\n restart)\n \t stop\n \t \tsleep 10\n \t \tstart\n \t \t;;\n *)\n echo "Usage: $0 {start|stop|restart}"\n esac\n exit 0\n ' >> /etc/rc.d/init.d/tomcat

给文件添加权限,使得脚本文件可以执行,命令为

  chmod 755 /etc/rc.d/init.d/tomcat

将其添加到服务中,命令如下:

 chkconfig --add /etc/rc.d/init.d/tomcat

添加配置到tomcat中的catalina.sh文件中的最后面,命令如下

 echo -e 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64  #javajdk的安装路径,使用echo $JAVA_HOME命令可以读取  \n export CATALINA_HOME=/usr/local/apache-tomcat-8.5.32  \n export CATALINA_BASE=/usr/local/apache-tomcat-8.5.32   \n export CATALINA_TMPDIR=/usr/local/apache-tomcat-8.5.32/temp\n' >> /usr/local/apache-tomcat-8.5.32/bin/catalina.sh

service tomcat start
service tomcat stop
以上两条命令不报错即可

当tomcat设置成系统服务后就会开机自启

多主机及配置文件详解

server.xml配置文件详解
修改以下8080端口为80端口

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

firewall-cmd –zone=public –add-port=80/tcp –permanent
firewall-cmd –reload
多站点配置,在tomcat安装目录下的conf下的server.xml中添加以下配置,插入位置为name=”localhost”的Host节点后面

  <Host name="tomcat1.shadowwu.club"  appBase="/var/www/html/tomcat1.shadowwu.club"
            unpackWARs="true" autoDeploy="true">
               <Context path="" docBase="/var/www/html/tomcat1.shadowwu.club"/>      
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>
       <Host name="tomcat2.shadowwu.club"  appBase="/var/www/html/tomcat2.shadowwu.club"
            unpackWARs="true" autoDeploy="true">
               <Context path="" docBase="/var/www/html/tomcat2.shadowwu.club"/>      
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>

以上配置中name为站点域名
APPBase为web应用所在的目录,默认为webapp,即tomcat安装目录下的
docBase为war包所在的路径,不在APPBase中时才需要指定
war包上传后自动部署后会对war包解压并部署在APPBase下,一般的目录结构为

index.jsp
META-INF  
WEB-INF
 -classes
 -lib
 -web.xml

闲言碎语

Tomcat可以用作Servlet/JSP容器,但是对静态资源的处理速度较慢,不如Apache和IIS以及Nginx等HTTP服务器;因此常常将Tomcat与Apache等集成,前者作Servlet容器,后者处理静态资源,用AJP协议让Tomcat和Apache的连接。
更多的是使用代理服务器(如nginx),用于请求的转发、负载均衡、处理静态文件等。
因此,如果只是用于http服务器,使用Nginx或者apache比较好。Tomcat还是专人专用好了。

点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注