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.www58058.com/76867

(0)
Mr-XiaoMr-Xiao
上一篇 2017-05-25
下一篇 2017-05-25

相關推薦

  • 第六周

    請詳細總結vim編輯器的使用并完成以下練習題 基本模式: 編輯模式,命令模式 輸入模式 末行模式 內置的命令行接口 打開文件: # vim [options] [file ..] +#:打開文檔后,直接讓光標處于第#行的行首 +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首   模式轉換: 編輯模式:默認模式 編…

    Linux干貨 2017-05-13
  • Linux的命令使用格式

    ◆Linux命令格式:command [options]  [arguments]command:命令options:  –單詞   或   -單字如: ls –allequ      ls -als -a -b -cequ&…

    Linux干貨 2016-10-31
  • rpm軟件管理工具詳解

    1 Linux軟件安裝概述 安裝程序的方式: 軟件包概述 RPM RPM的缺點 RPM包 RPM分包 RPM命令的使用 rpm 包管理 升級注意項 如何安裝rpm軟件包 如何卸載rpm軟件包 如何升級rpm軟件包 如何查詢rpm軟件包 如何查看與rpm包相關的文件和其他信息 如何校驗rpm包 RPM的數據庫 1 Linux軟件安裝概述 安裝程序的方式: 通用…

    Linux干貨 2016-09-06
  • 壓縮和解壓縮

    今天我們所講一些壓縮以及解壓縮的內容,可以方便我們去傳輸一些數據較大的文件,以及可以降低我們的內存使用率, 節省空間。我們常用的工具對單個文件進行壓縮有4種,對于多個文件進行打包壓縮有2種。 1、compress(單個文件壓縮)     壓縮后的文件后綴名都是.Z結尾     compress fi…

    2017-08-12
  • 軟件包管理rpm和yum基本使用

    RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易于安裝,升級,間接提升了Linux的適用度。 rpm 執行安裝包 二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,…

    Linux干貨 2016-08-29
  • LVM應用概要

    LVM — 即Logical Volume ?Manager(邏輯卷管理管理),是Linux的一種磁盤管理機制。 LVM可以將物理磁盤以PV(Physical Volume)為單位抽象成VG(Volume Group)。在VG中,最小存儲單元是一個PE(Physical Extent)。在VG的基礎上再抽象一層,劃分出LV(Logical Vol…

    2017-11-28

評論列表(1條)

  • love_in_linux
    love_in_linux 2017-08-15 11:56

    您好,我想問一下,您寫的這個LAMT實現動靜分離,靜態資源放在哪,如何請求,我只看到了你這反向代理動態資源

欧美性久久久久