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 10:49
下一篇 2017-05-25 17:47

相關推薦

  • 程序包的編譯安裝

    程序包的編譯安裝 之所以需要安裝編譯程序包,是為了能及時更新程序包,制作好的rpm包,版本一般都有點老了,所以編譯安裝是必報的,而且我們可以自己定義安裝路徑,想卸載直接刪除就KO了; 在centos7.3環境下安裝apache http服務: 1.首先獲取最新的apache源碼包下載到/root目錄下; 2.檢查安裝環境,沒有就安裝環境:   記住…

    Linux干貨 2017-03-09
  • 07程序包管理器簡介

    源代碼命名方式,name-version.tar.gz|bz2|xz,    –>version:major.minor.release 要將一個源代碼程序安裝到Linux系統上,一般有兩個方法。 1、找到源代碼,手動編譯安裝。解壓,./configure  –> make –&g…

    Linux干貨 2016-11-03
  • CA證書服務搭建與申請

    服務端根CA創建證書 進入固定目錄,創建所需要的文件 cd /etc/pki/CA/ touch /etc/pki/CA/index.txt 生成證書索引數據庫文件 echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號 生成秘鑰 (umask 066;openssl genrsa -out /etc/pki/CA/pri…

    2017-09-11
  • python 常用記錄

    all() >>> a = [11,22,33] >>> all(a) >>> ture 對序列進行判斷,如果全為真,則返回Ture >>> a = [11,22,0] >>> a…

    Linux干貨 2016-09-19
  • Linux系統文本處理

                                           Linux系統文本處理工具        …

    Linux干貨 2016-08-15
  • 關于TCP/IP與OSI模型基礎學習

    關于TCP/IP與OSI模型基礎學習 §·OSI七層模型介紹 OSI(Open system interconnection 開放系統互聯),七層網絡模型稱為開放式系統互聯參考模型 ,是一個邏輯上的定義,一個規范,它把網絡從邏輯上分為了7層。每一層都有相關、相對應的物理設備,比如路由器,交換機。OSI 七層模型是一種框架性的設計方法 ,建立七層模型的主要目的…

    Linux干貨 2016-09-05

評論列表(1條)

  • love_in_linux
    love_in_linux 2017-08-15 11:56

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

欧美性久久久久