• CentOS7下搭建Tomcat服务器


      Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。

      因为Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。支持JSP网站的收费版web服务器:oracle 的 weblogic、IBM 的 websphere。

    (1).什么是中间件

      中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

      中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。

      中间件是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

      中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

    (2).下载安装包

      JDK程序包,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html。具体选择什么版本看自己的需要,我这里使用的是jdk-8u191-linux-x64.tar.gz。

      Tomact程序包,下载地址:http://tomcat.apache.org/。选择版本在左侧,我这里使用的是Core(核心)里的apache-tomcat-8.5.35.tar.gz。

      然后将下载好的程序包上传。这两个都是二进制包,解压后可以直接使用。

    (3).JDK的安装和配置

      1)首先查看系统中是否存在openjdk,如果存在将其卸载。

    [root@youxi1 ~]# java -version
    -bash: java: 未找到命令  //我的系统没有,如果显示的是openjdk version ...,那就是openjdk
    [root@youxi1 ~]# yum -y remove java-*  //可以使用这个命令卸载自带的openjdk
    

      2)将文件解压到指定地址

    [root@youxi1 ~]# tar zxf jdk-8u191-linux-x64.tar.gz -C /usr/local/

      3)配置环境变量,刷新

    [root@youxi1 ~]# vim /etc/profile.d/jdk8.sh
    export JAVA_HOME=/usr/local/jdk1.8.0_191
    export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    [root@youxi1 ~]# . /etc/profile.d/jdk8.sh
    

      也可以写入/etc/profile文件。

      4)测试

    [root@youxi1 ~]# java -version
    java version "1.8.0_191"
    Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
    

    (4).Tomcat的安装和配置

      1)将文件解压到指定地址

    [root@youxi1 ~]# tar zxf apache-tomcat-8.5.35.tar.gz -C /usr/local/
    

      这里我嫌解压后的文件夹名称太长了,修改文件夹名称

    [root@youxi1 ~]# mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat8.5
    

      顺便说明一下解压后目录下存在的各个文件夹的作用:

    [root@youxi1 ~]# ll /usr/local/tomcat8.5/ | grep drw
    drwxr-x--- 2 root root  4096 6月  29 17:09 bin  //启动和关闭的脚本目录,存放脚本
    drwx------ 2 root root   238 11月  4 2018 conf  //配置文件目录,存放配置文件
    drwxr-x--- 2 root root  4096 6月  29 17:09 lib  //内库,依赖包目录
    drwxr-x--- 2 root root     6 11月  4 2018 logs  //日志目录,存放日志
    drwxr-x--- 2 root root    30 6月  29 17:09 temp  //临时目录,存放临时文件
    drwxr-x--- 7 root root    81 11月  4 2018 webapps  //Web目录
    drwxr-x--- 2 root root     6 11月  4 2018 work  //工作目录,存放编译产生的class和servlet文件
    

      据说,bin目录下的shutdown.sh并不好用,一般会使用kill命令直接杀死tomcat。

      2)创建一个启动脚本,并加入开机自启

    [root@youxi1 ~]# vim /etc/init.d/tomcat
    #!/bin/bash
    #
    # tomcat startup script for the Tomcat server
    #
    # chkconfig: 345 80 20
    # description: start the tomcat deamon
    #
    # Source function library
    JAVA_HOME=/usr/local/jdk1.8.0_191  //这里指定JAVA的地址
    export JAVA_HOME
    CATALANA_HOME=/usr/local/tomcat8.5  //这里指定Tomcat的地址
    export CATALANA_HOME
    case "$1" in
    start)
        echo "Starting Tomcat..."
        $CATALANA_HOME/bin/startup.sh
        ;;
    stop)
        echo "Stopping Tomcat..."
        $CATALANA_HOME/bin/shutdown.sh
        ;;
    restart)
        echo "Stopping Tomcat..."
        $CATALANA_HOME/bin/shutdown.sh
        sleep 2
        echo
        echo "Starting Tomcat..."
        $CATALANA_HOME/bin/startup.sh
        ;;
    *)
        echo "Usage: $prog {start|stop|restart}"
        ;;
    esac
    exit 0
    [root@youxi1 ~]# chmod +x /etc/init.d/tomcat  //添加执行权限
    [root@youxi1 ~]# chkconfig --add tomcat  //添加到chkconfig管理
    [root@youxi1 ~]# chkconfig --list tomcat
    tomcat 0:关 1:关 2:关 3:开 4:开 5:开 6:关
    [root@youxi1 ~]# chkconfig --level 2345 tomcat on  //如果上面没有开启,可以使用这条命令,当然只需要345就行了
    [root@youxi1 ~]# chkconfig --list tomcat  //这是做的示范     
    tomcat          0:关    1:关    2:开    3:开    4:开    5:开    6:关
    

      3)启动tomcat

    [root@youxi1 ~]# systemctl start tomcat
    [root@youxi1 ~]# systemctl status tomcat
    ● tomcat.service - SYSV: start the tomcat deamon
       Loaded: loaded (/etc/rc.d/init.d/tomcat; bad; vendor preset: disabled)
       Active: active (running) since 六 2019-06-29 17:47:23 CST; 9s ago
         Docs: man:systemd-sysv-generator(8)
      Process: 1744 ExecStart=/etc/rc.d/init.d/tomcat start (code=exited, status=0/SUCCESS)
       CGroup: /system.slice/tomcat.service
               └─1754 /usr/local/jdk1.8.0_191/bin/java -Djava.util.logging.config...
    
    6月 29 17:47:23 youxi1 systemd[1]: Starting SYSV: start the tomcat deamon...
    6月 29 17:47:23 youxi1 tomcat[1744]: Starting Tomcat...
    6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_BASE:   /usr/local/tom....5
    6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_HOME:   /usr/local/tom....5
    6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_TMPDIR: /usr/local/tom...mp
    6月 29 17:47:23 youxi1 tomcat[1744]: Using JRE_HOME:        /usr/local/jdk...91
    6月 29 17:47:23 youxi1 tomcat[1744]: Using CLASSPATH:       /usr/local/tom...ar
    6月 29 17:47:23 youxi1 tomcat[1744]: Tomcat started.
    6月 29 17:47:23 youxi1 systemd[1]: Started SYSV: start the tomcat deamon.
    Hint: Some lines were ellipsized, use -l to show in full.
    

      4)如果存在防火墙记得添加端口号

    [root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
    success
    [root@youxi1 ~]# firewall-cmd --reload 
    success
    [root@youxi1 ~]# firewall-cmd --permanent --zone=public --list-ports 
    8080/tcp
    

      5)测试

      在Windows上查看

    (5).扩展:如果一台服务器上存在多个Tomcat

      此时,创建启动脚本容易写错,导致误杀。所以一般都会到需要执行的tomcat目录下,再执行脚本。当然写启动脚本也可以,但需要注意启动脚本的名称要方便识别是用来做什么的,然后脚本内部的地址需要仔细检测。

      如果不写启动脚本,这时候想要Tomcat开机自启,请将启动命令(当然也可以将启动命令做成一个脚本文件)写入/etc/rc.d/rc.local文件,并授予执行权限。如下:

    [root@youxi1 ~]# vim /etc/rc.d/rc.local
    xport JAVA_HOME=/usr/local/jdk1.8.0_191  //必须有这一条,否则无法执行Tomcat的startup.sh
    /usr/local/tomcat8.5/bin/startup.sh
    [root@youxi1 ~]# chmod +x !$  //授权
    chmod +x /etc/rc.d/rc.local

      重启服务器来验证是否开机自启

    [root@youxi1 ~]# ss -tlunp | grep 8080 
    tcp    LISTEN     0      100      :::8080                 :::*                   users:(("java",pid=1092,fd=49))
    

    (6).如何查看tomcat的版本

      有两种方法:一种是直接提供的version.sh脚本

    [root@youxi1 ~]# /usr/local/tomcat8.5/bin/version.sh 
    Using CATALINA_BASE:   /usr/local/tomcat8.5
    Using CATALINA_HOME:   /usr/local/tomcat8.5
    Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
    Using JRE_HOME:        /usr/local/jdk1.8.0_191
    Using CLASSPATH:       /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
    Server version: Apache Tomcat/8.5.35
    Server built:   Nov 3 2018 17:39:20 UTC
    Server number:  8.5.35.0
    OS Name:        Linux
    OS Version:     3.10.0-862.el7.x86_64
    Architecture:   amd64
    JVM Version:    1.8.0_191-b12
    JVM Vendor:     Oracle Corporation
    

      另一种是通过提供的catalina.sh脚本来查看

    [root@youxi1 ~]# /usr/local/tomcat8.5/bin/catalina.sh version
    Using CATALINA_BASE:   /usr/local/tomcat8.5
    Using CATALINA_HOME:   /usr/local/tomcat8.5
    Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
    Using JRE_HOME:        /usr/local/jdk1.8.0_191
    Using CLASSPATH:       /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
    Server version: Apache Tomcat/8.5.35
    Server built:   Nov 3 2018 17:39:20 UTC
    Server number:  8.5.35.0
    OS Name:        Linux
    OS Version:     3.10.0-862.el7.x86_64
    Architecture:   amd64
    JVM Version:    1.8.0_191-b12
    JVM Vendor:     Oracle Corporation
    

      

  • 相关阅读:
    springmvc常用注解标签详解
    高性能相关、Scrapy框架
    requests、BeautifulSoup、自动登陆示例
    框架----Django之Ajax全套实例(原生AJAX,jQuery Ajax,“伪”AJAX,JSONP,CORS)
    框架----Django之文件上传
    框架----Django之Form提交验证(一)
    框架----Django之Form提交验证(二)
    框架----Django之Form组件
    框架----Django框架知识点整理
    框架----Django框架(进阶篇)
  • 原文地址:https://www.cnblogs.com/diantong/p/11106697.html
Copyright © 2020-2023  润新知