Tomcat

简介

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。



Tomcat安装

    搭建tomcat运行环境需分两步实现:jdk+tomcat,安装方式有两种,系统自带的rpm包安装及其使用官方的二进制包,同时jdk的安装方式也有两种,系统自带的rpm包及官方下载的oracle的jdk的rpm包。

  • 系统自带的openjdk+tomcat

yum list all *jdk*      #查看yum仓库中jdk版本
yum -y install java-1.8.0-openjdk_x86_64 java-1.8.0-openjdk-devel_x86_64
yum -y install tomcat tomcat-lib tomcat-webapps tomcat-admin-webapp

  • 使用Oracle JDK和tomcat提供的编译完成的程序包

rpm -ivh jdk-8u131-linux-x64.rpm 
tar -xf apache-tomcat-9.0.0.M21.tar.gz -C /usr/local/
cd /usr/local
ln -sv apache-tomcat-9.0.0.M21 tomcat
vim /etc/profile.d/tomcat.sh   #通过官网下载二进制包及其rpm安装的tomcat和jdk需导入环境变量
          export CATALINA_BASE=/usr/local/tomcat
          export PATH=$CATALINA_BASE/bin:$PATH

 . /etc/profile.d/tomcat.sh 

vim /etc/profile.d/java.sh  #java导入环境变量
        JAVA_HOME=/usr/java/latest
        PATH=$JAVA_HOME/bin:$PATH

. /etc/profile.d/java.sh

 tomcat程序环境:

tomcat的目录结构  
[root@centos704 ~]#cd /usr/share/tomcat/  #系统自带方式安装
[root@centos704 tomcat]#ls
bin  conf  lib  logs  temp  webapps  work

      bin:脚本,及启动时用到的类;
      conf:配置文件目录;
      lib:库文件,Java类库,jar;
      logs:日志文件目录;
      temp:临时文件目录;
      webapps:webapp的默认目录;
      work:工作目录;
      
    rpm包安装的程序环境:
      配置文件目录:/etc/tomcat
        主配置文件:server.xml 
      webapps存放位置:/var/lib/tomcat/webapps/
         examples
         manager
         host-manager
         docs
       Unit File:tomcat.service
      环境配置文件:/etc/sysconfig/tomcat

  tomcat的配置文件:
      server.xml:主配置文件;
      web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
      context.xml:每个web都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
      tomcat-users.xml:用户认证的账号和密码文件;
      catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略; 
      catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数;
      logging.properties:日志系统相关的配置;

tomcat的组件:  server.xml
<Server>
    <Service>
        <connector/>
        <connector/>
        <Engine>
            <Host />
            <Host>
                <Context/>
                ...
            </Host>
        </Engine>
    </Service>
</Server>

每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型: 顶级组件:Server
    服务类:Service
    连接器:http, https, ajp(apache jserv protocol)
    容器类:Engine, Host, Context
    被嵌套的组件:valve, logger, realm, loader, manager
    集群类组件:listener, ...

启动tomcat配置应用

部署(deploy)webapp的相关操作:
deploy:将webapp的源文件放置于目标目录、配置tomcat服务器能够基于context.xml文件中定义的路径来访问此webapp;将其特有的类通过class loader装载至tomcat:
    有两种方式:
        自动部署:auto deploy
        手动部署:
            (1) 冷部署:把webapp复制到指定位置,而后才启动tomcat;
            (2) 热部署:在不停止tomcat的前提下进行的部署:
                部署工具:manager app、ant脚本、tcd(Tomcat Client Deployer)等;
undeploy:反部署,停止webapp,并从tomcat实例上拆除其部署文件和部署名;
stop:停止,不再向用户提供服务;
start:启动处于“停止”状态的webapp;
redeploy:重新部署;

tomcat自带的应用程序:
    manager app: webapp管理工具;
    host manager: VHosts管理工具;




 
 手动添加一个测试应用目录:
    1、创建一个webapps特有的目录结构 
[root@centos704 ~]#cd /usr/share/tomcat/webapps/
[root@centos704 webapps]# mkdir -pv myapp/{class,WEB-INF,META-INF,lib} 
    2、提供一个webapps的主页面
[root@centos704 webapps]#vim index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
     <head>
        <title>Test Page</title>
     </head>
     <body>          
        <% out.println("hello world"); %>
     </body>
</html>
    3、启动应用程序,访问默认主页面及其myapp页面
    systemctl start tomat   

网页测试

Tomcat

Tomcat

启动管理页面工具编辑tomcat-user.xml配置文件,添加如下配置重启服务。

管理页面可以对web app进行部署,卸载,开启,关闭,reload,updat

[root@centos7 tomcat]#vim conf/tomcat-users.xml 
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

TomcatTomcat

实战配置LAMT实现动静分离

 基于LAMT实现方式有两种,一种基于http,另一种基于ajp,如下配置:

前端调度器 
(1).基于http
[root@centos7 ~]#vim /etc/httpd/conf/httpd.conf 
#DocumentRoot "/var/www/html"    #注释http默认页面
[root@centos7 conf.d]#vim http_tomcat.conf      #proxy_http_module代理配置
<VirtualHost *:80>
        ServerName      tc1.magedu.com
        ProxyRequests Off
        ProxyVia        On
        ProxyPreserveHost On
        <Proxy *>
          Require all granted
        </Proxy>
        ProxyPass / http://172.18.51.74:8080/
        ProxyPassReverse / http://172.18.51.74:8080/
        <Location />
          Require all granted
        </Location>
      </VirtualHost>

2、使用ajp机制,使用虚拟主机 
 [root@centos7 conf.d]#vim ajp_tomcat.conf
      <VirtualHost *:80>
        ServerName      tc1.magedu.com
        ProxyRequests Off
        ProxyVia        On
        ProxyPreserveHost On
        <Proxy *>
          Require all granted
        </Proxy>
        ProxyPass / ajp://172.18.51.74:8009/ 
        ProxyPassReverse / ajp://172.18.51.74:8009/ 
        <Location />
          Require all granted
        </Location>
      </VirtualHost>

[root@centos7 ~]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@centos7 ~]#systemctl restart nginx 


Tomcat




原创文章,作者:Mr-Xiao,如若转载,请注明出处:http://www.178linux.com/76867

(0)
Mr-XiaoMr-Xiao
上一篇 2017-05-25 10:49
下一篇 2017-05-25 17:47

相关推荐

  • Mariadb基于ssl的主从复制

    Mariadb基于ssl的主从复制 一、前言 备份数据库是生产环境中的首要任务,重中之重。一般配置中mariadb的主从传输是明文传输,但是有时候对一些特殊业务来说是不允许的,为了保证数据在传输过程中的安全性,因此使用基于SSL的复制会大大加强数据的安全性。 二、准备工作 1、实验系统环境: CentOS7.2,SELinux关闭,iptables关闭,安装…

    Linux干货 2017-02-24
  • 根分区伸缩实验

    众所周知LVM是Linux环境下对 磁盘进行管理的一种机制。用户在安装Linux操作系统时,难以分配合适的硬盘空间,当一个分区存放不下某个文件时,这个文件因为文件系统的限制,也不能 跨越多个分区来存放。而遇到出现某个分区耗尽时,只有使用调整分区大小的工具。随着LVM功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方 便…

    Linux干货 2015-05-27
  • 2016-08-18博客作业

    case 语句 条件判断语句 case 用 变量引用 in PAT1) 分支1 ;; PAT2) 分支2 ;; … *) 默认分支 ;; esac   case 支持glob 风格的通配符: *       任意长度任意字符 ?    &…

    Linux干货 2016-09-19
  • wk_01作业

    计算机 介绍 电子计算机(英语:computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数据进行处理的工具。在现代,机械计算机的应用已经完全被电子计算机所替换,其所相关的技术研究叫计算机科学,而“计算机技术”指的是将计算机科学的成果应用于工程实践所派生的诸多技术性和经验性成果的总合。“计算机技术”与“计算机科学”是两个相关而又不同的概念,它们的不…

    Linux干货 2016-12-04
  • mysql-yum安装多实例

    1.安装包 yum install mariadb-server 2.创建文件 3 分别生成3306,3307,3308数库文件 4.复制主配置文件并分别修改端口路径 5.准备一个启动脚本并开启服务 /mysqldb/3307/mysqld start 6.用mysql -S 命令进入    

    2018-01-28
  • 26期全程班-第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit :%s@^\([[:space:]]\+\)@#\1@g 2…

    Linux干货 2017-03-07

评论列表(1条)

  • love_in_linux
    love_in_linux 2017-08-15 11:56

    您好,我想问一下,您写的这个LAMT实现动静分离,静态资源放在哪,如何请求,我只看到了你这反向代理动态资源