1. 程式人生 > >Tomcat 8安裝與配置

Tomcat 8安裝與配置

tomcat


#

#Tomcat 8官方文檔:http://tomcat.apache.org/tomcat-8.0-doc/setup.html

#Tomcat 8 下載地址:http://tomcat.apache.org/download-80.cgi

# Tomcat 運行需要JDK的支持

#JDK 下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

#配置參考 :http://www.cnblogs.com/guojuncheng/p/5851954.html


#系統版本

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)


#關閉防火墻和selinux

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0


#JDK安裝(軟件自行下載)

[[email protected] ~]# tar -xf jdk-8u131-linux-x64.tar.gz -C /usr/local/
[[email protected] ~]# ln -s /usr/local/jdk1.8.0_131 /usr/local/jdk
#配置環境變量
[[email protected]
/* */ ~]# vim /etc/profile #增加如下三行 [[email protected] ~]# tail -3 /etc/profile export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin [[email protected] ~]# source /etc/profile [[email protected] ~]# java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) [[email protected]
/* */ ~]#


#Tomcat 安裝(二進制安裝)

[[email protected] ~]# tar -xf apache-tomcat-8.5.15.tar.gz -C /usr/local/
[[email protected] ~]# ln -s /usr/local/apache-tomcat-8.5.15 /usr/local/tomcat


#啟動服務

[[email protected] ~]# /usr/local/tomcat/bin/startup.sh
[[email protected] ~]# netstat -lntup | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      2764/java           
[[email protected] ~]#


#訪問

技術分享




#配置參考:http://www.cnblogs.com/guojuncheng/p/5851954.html

#jar 包參考:http://blog.csdn.net/helloxiaoliang/article/details/39030909


#目錄結構

[[email protected] ~]# cd /usr/local/tomcat/
[[email protected] tomcat]# ll
total 100
drwxr-x---. 2 root root  4096 May 14 23:07 bin          # Tomcat執行腳本目錄
drwx------. 3 root root  4096 May 14 23:10 conf          # Tomcat 配置文件目錄
drwxr-x---. 2 root root  4096 May 14 23:07 lib          #Tomcat運行需要的庫文件
-rw-r-----. 1 root root 57092 May  5 19:06 LICENSE     
drwxr-x---. 2 root root  4096 May 14 23:10 logs        # Tomcat 執行時的日誌存放目錄
-rw-r-----. 1 root root  1723 May  5 19:06 NOTICE
-rw-r-----. 1 root root  7064 May  5 19:06 RELEASE-NOTES
-rw-r-----. 1 root root 15946 May  5 19:06 RUNNING.txt
drwxr-x---. 2 root root    29 May 14 23:07 temp           #Tomcat 臨時目錄
drwxr-x---. 7 root root    76 May  5 19:03 webapps     # Tomcat 的主要web發布目錄 (存放我們自己的JSP,serlet,類)
drwxr-x---. 3 root root    21 May 14 23:10 work          #Tomcat 的工作目錄,Tomcat將翻譯JSP到的JAVA文件和class文件放在這裏
[[email protected] tomcat]#


#bin目錄

[[email protected] tomcat]# ll bin/
total 812
-rw-r-----. 1 root root  34529 May  5 19:03 bootstrap.jar
-rw-r-----. 1 root root  14505 May  5 19:03 catalina.bat   #windows 下使用的腳本
-rwxr-x---. 1 root root  21793 May  5 19:03 catalina.sh   #linux下用於啟動和關閉Tomcat服務的腳本
-rw-r-----. 1 root root   1664 May  5 19:06 catalina-tasks.xml
-rw-r-----. 1 root root  24283 May  5 19:03 commons-daemon.jar
-rw-r-----. 1 root root 204944 May  5 19:03 commons-daemon-native.tar.gz
-rw-r-----. 1 root root   2040 May  5 19:03 configtest.bat  #windows下使用的腳本
-rwxr-x---. 1 root root   1922 May  5 19:03 configtest.sh  #linux下用於檢查配置文件的腳本
-rwxr-x---. 1 root root   7735 May  5 19:03 daemon.sh
-rw-r-----. 1 root root   2091 May  5 19:03 digest.bat
-rwxr-x---. 1 root root   1965 May  5 19:03 digest.sh
-rw-r-----. 1 root root   3147 May  5 19:03 setclasspath.bat
-rwxr-x---. 1 root root   3306 May  5 19:03 setclasspath.sh
-rw-r-----. 1 root root   2020 May  5 19:03 shutdown.bat
-rwxr-x---. 1 root root   1902 May  5 19:03 shutdown.sh    #linux 關閉tomcat腳本
-rw-r-----. 1 root root   2022 May  5 19:03 startup.bat
-rwxr-x---. 1 root root   1904 May  5 19:03 startup.sh    #linux啟動tomcat腳本
-rw-r-----. 1 root root  41150 May  5 19:03 tomcat-juli.jar
-rw-r-----. 1 root root 399836 May  5 19:03 tomcat-native.tar.gz
-rw-r-----. 1 root root   3621 May  5 19:03 tool-wrapper.bat
-rwxr-x---. 1 root root   4579 May  5 19:03 tool-wrapper.sh
-rw-r-----. 1 root root   2026 May  5 19:03 version.bat
-rwxr-x---. 1 root root   1908 May  5 19:03 version.sh
[[email protected] tomcat]#


#conf目錄

[[email protected] tomcat]# ll conf/
total 224
drwxr-x---. 3 root root     22 May 14 23:10 Catalina
-rw-------. 1 root root  12895 May  5 19:06 catalina.policy       #Java相關的安全策略配置文件,在系統資源級別上提供訪問控制能力
-rw-------. 1 root root   7376 May  5 19:06 catalina.properties  #tomcat內部package的定義及訪問相關的控制
-rw-------. 1 root root   1338 May  5 19:06 context.xml           #所用host的默認配置信息
-rw-------. 1 root root   1149 May  5 19:06 jaspic-providers.xml
-rw-------. 1 root root   2358 May  5 19:06 jaspic-providers.xsd
-rw-------. 1 root root   3622 May  5 19:06 logging.properties      #用來記錄操作相關的日誌的配置信息
-rw-------. 1 root root   7511 May  5 19:06 server.xml             #Tomcat的主配置文件
-rw-------. 1 root root   2164 May  5 19:06 tomcat-users.xml        #Tomcat 用戶認證的配置文件
-rw-------. 1 root root   2633 May  5 19:06 tomcat-users.xsd
-rw-------. 1 root root 168251 May  5 19:06 web.xml           #為不同的Tomcat配置的web應用設置缺省值的文件
[[email protected] tomcat]#


#logs目錄

[[email protected] tomcat]# ll logs/
total 24
-rw-r-----. 1 root root 6491 May 14 23:10 catalina.2017-05-14.log  #tomcat 啟動和關閉日誌
-rw-r-----. 1 root root 6491 May 14 23:10 catalina.out   #tomcat 啟動和關閉日誌
-rw-r-----. 1 root root    0 May 14 23:10 host-manager.2017-05-14.log    
-rw-r-----. 1 root root  280 May 14 23:10 localhost.2017-05-14.log   #錯誤和其他日誌
-rw-r-----. 1 root root  755 May 14 23:12 localhost_access_log.2017-05-14.txt  #訪問日誌
-rw-r-----. 1 root root    0 May 14 23:10 manager.2017-05-14.log     #管理日誌
[[email protected] tomcat]#


#server.xml配置詳解 參考:http://www.zyops.com/java-tomcat

  1. <?xml version=‘1.0‘ encoding=‘utf-8‘?>
    <!--
    <Server>元素代表整個容器,是Tomcat實例的頂層元素.由org.apache.catalina.Server接口來定義.它包含一個<Service>元素.並且它不能做為任何元素的子元素.
        port指定Tomcat監聽shutdown命令端口.終止服務器運行時,必須在Tomcat服務器所在的機器上發出shutdown命令.該屬性是必須的.
        shutdown指定終止Tomcat服務器運行時,發給Tomcat服務器的shutdown監聽端口的字符串.該屬性必須設置
    -->
    <Server port="8005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
      <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
      <!--service服務組件-->
      <Service name="Catalina">
        <!--
        connector:接收用戶請求,類似於httpd的listen配置監聽端口.
            port指定服務器端要創建的端口號,並在這個端口監聽來自客戶端的請求。
            address:指定連接器監聽的地址,默認為所有地址(即0.0.0.0)
            protocol連接器使用的協議,支持HTTP和AJP。AJP(Apache Jserv Protocol)專用於tomcat與apache建立通信的, 在httpd反向代理用戶請求至tomcat時使用(可見Nginx反向代理時不可用AJP協議)。
            minProcessors服務器啟動時創建的處理請求的線程數
            maxProcessors最大可以創建的處理請求的線程數
            enableLookups如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址
            redirectPort指定服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號
            acceptCount指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
            connectionTimeout指定超時的時間數(以毫秒為單位)
        -->
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        <!--engine,核心容器組件,catalina引擎,負責通過connector接收用戶請求,並處理請求,將請求轉至對應的虛擬主機host
            defaultHost指定缺省的處理請求的主機名,它至少與其中的一個host元素的name屬性值是一樣的
        -->
        <Engine name="Catalina" defaultHost="localhost">
          <!--Realm表示存放用戶名,密碼及role的數據庫-->
          <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <!--
          host表示一個虛擬主機
            name指定主機名
            appBase應用程序基本目錄,即存放應用程序的目錄.一般為appBase="webapps" ,相對於CATALINA_HOME而言的,也可以寫絕對路徑。
            unpackWARs如果為true,則tomcat會自動將WAR文件解壓,否則不解壓,直接從WAR文件中運行應用程序
            autoDeploy:在tomcat啟動時,是否自動部署。
            xmlValidation:是否啟動xml的校驗功能,一般xmlValidation="false"。
            xmlNamespaceAware:檢測名稱空間,一般xmlNamespaceAware="false"。
          -->
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <!--
            Context表示一個web應用程序,通常為WAR文件
                docBase應用程序的路徑或者是WAR文件存放的路徑,也可以使用相對路徑,起始路徑為此Context所屬Host中appBase定義的路徑。
                path表示此web應用程序的url的前綴,這樣請求的url為http://localhost:8080/path/****
                reloadable這個屬性非常重要,如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重啟tomcat的情況下改變應用程序
            -->
            <Context path="" docBase="" debug=""/>
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
          </Host>
        </Engine>
      </Service>
    </Server>


tomcat的三種運行模式

Tomcat 8安裝與配置