1. 程式人生 > >Tomcat介紹、安裝jdk 、安裝Tomcat、配置Tomcat監聽80埠、配置Tomcat虛擬主機、Tomcat日誌

Tomcat介紹、安裝jdk 、安裝Tomcat、配置Tomcat監聽80埠、配置Tomcat虛擬主機、Tomcat日誌

一、Tomcat介紹

Tomcat是Apache軟體基金會(Apache Software Foundation)的Jakarta專案中的一個核心專案,由Apache、Sun和其他一些公司及個人共同開發而成。 Tomcat伺服器是一個免費的開放原始碼的Web應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。java程式寫的網站用Tomcat+JDK來執行,Tomcat是一箇中間件,真正起作用的,解析Java指令碼的是JDK。JDK(Java development kit)是整個Java的核心,它包含了Java執行環境和一堆Java相關的工具以及Java基礎庫。 最主流的JDK是由sun公司釋出的JDK,除此之外,IBM公司也有釋出JDK,centos上也可以使用yum安裝openjdk。

二、安裝JDK

安裝包準備

切換至安裝包存放目錄:
[[email protected] ~]# cd /usr/local/src/
 
使用xftp將下載好的JDK安裝包上傳到該目錄,然後解壓:  
[[email protected] src]# tar zxvf jdk-8u144-linux-x64.gz
 
[[email protected] src]# mv jdk1.8.0_144 /usr/local/jdk1.8
[[email protected] src]# cd /usr/local/jdk1.8

設定環境變數

[[email protected]
jdk1.8]# vim /etc/profile …… JAVA_HOME=/usr/local/jdk1.8/ JAVA_BIN=/usr/local/jdk1.8/bin JRE_HOME=/usr/local/jdk1.8/jre PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charset.jar 重新整理: [[email protected] jdk1.8]# source /etc/profile 檢測JDK是否安裝成功: [
[email protected]
jdk1.8]# java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

三、安裝Tomcat

安裝包準備

[[email protected] src]# cd /usr/local/src/
下載(二進位制包):
[[email protected] src]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz
 
解壓:
[[email protected] src]# tar zxf apache-tomcat-8.5.20.tar.gz
 
[[email protected] src]# mv apache-tomcat-8.5.20 /usr/local/tomcat

啟動Tomcat

[[email protected] src]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

關閉Tomcat的命令:

[[email protected] src]# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

說明: Tomcat不支援restart,如果更改其配置檔案,只能先關閉再啟動。

[[email protected] src]# netstat -lntp |grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      2569/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2569/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2569/java           

注: Tomcat監聽8080埠。 在瀏覽器輸入192.168.8.132:8080(host:port)可訪問本機Tomcat主頁。

三個埠

埠8080:提供web服務的 埠8005:管理埠 埠8009:第三方服務呼叫埠(如:httpd和Tomcat結合時會用到)

四、配置Tomcat監聽80埠

編輯Tomcat配置檔案:

[[email protected] ~]# vim /usr/local/tomcat/conf/server.xml 
……
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
……

說明: 在配置檔案中搜索8080找到如上所示引數,將預設的8080埠改為80埠,更改完成後重啟服務。

[[email protected] ~]# /usr/local/tomcat/bin/shutdown.sh
[[email protected] ~]# /usr/local/tomcat/bin/startup.sh

檢視服務狀態:

[[email protected] ~]# ps aux |grep tomcat
 
[[email protected] ~]# netstat -lntp |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2716/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2716/java   
 
[[email protected] ~]# netstat -lntp |grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1825/nginx: master  
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2716/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2716/java

此時Tomcat服務正常執行,但是沒有監聽埠,監聽80埠的是nginx服務。如果想讓Tomcat監聽80埠,需要關閉nginx服務,然後重啟Tomcat服務

[[email protected] ~]# systemctl stop nginx.service 
[[email protected] ~]# /usr/local/tomcat/bin/shutdown.sh
[[email protected] ~]# /usr/local/tomcat/bin/startup.sh 

檢測服務狀態:
[[email protected] ~]# netstat -lntp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      2815/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2815/java         

說明: 此時使用瀏覽器訪問主機IP可以直接進入Tomcat主頁

五、配置Tomcat的虛擬主機

[[email protected] ~]# vim /usr/local/tomcat/conf/server.xml
……
<Host name="www.123.cn" appBase=""
#appbase是定義Tomcat的應用(war檔案)存放位置  
#如果未使用該引數定義其應用,可以使用docbase來指定應用存放目錄
#當這兩個引數同時存在時,需要將其中一個寫為空
        unpackWARs= "true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
</Host>

說明: 在配置檔案中搜索“Host”找到虛擬主機配置引數,在配置檔案自帶(預設)虛擬主機後面增加如上引數(增加一個虛擬主機)

本節使用Tomcat部署一個Java應用

下載zrlog

[[email protected] src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
 
[[email protected] src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
#因為appbase支援自動解壓war包,所以將zrlog包放到appbase的根目錄下。
 
[[email protected] src]# ls /usr/local/tomcat/webapps/
docs      host-manager  ROOT                         zrlog-1.7.1-baaecb9-release.war
examples  manager       zrlog-1.7.1-baaecb9-release
#拷貝完成後,zrlog包會自動被解壓,解壓完成後就可以直接訪問該檔案。  
 
重新命名:
[[email protected] src]# cd /usr/local/tomcat/webapps/
[[email protected] webapps]# mv zrlog-1.7.1-baaecb9-release zrlog

只要war包在appbase的目錄下,更改相應檔名後就會自動被解壓再次生成相應的檔案,所以為了方便起見,當war下載完成後進行移動的同時對其重新命名,如下:

[[email protected] webapps]# cp /usr/local/src/zrlog-1.7.1-baaecb9-release.war ./zrlog.war

安裝zrlog

在瀏覽器輸入IP 192…/zrlog/instll 進入安裝嚮導

建立資料庫

[[email protected] ~]# mysql -uroot -p123456
Welcome to the MySQL monitor.
mysql> create database zrlog;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zrlog.* to 'zrlog'@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

建立管理員密碼

建立完成後點選“下一步”

訪問zrlog需要在瀏覽器中指定IP和目錄,配置如下

[[email protected] ~]# vim /usr/local/tomcat/conf/server.xml
……
    <Host name="www.zrlog.cn" appBase=""
          unpackWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="/data/wwwroot/zrlog.cn/" debug="0" reloadable="true" crossContext="true"/>
    </Host>
……
[[email protected] ~]# /usr/local/tomcat/bin/shutdown.sh 
[[email protected] ~]# /usr/local/tomcat/bin/startup.sh

然後建立docbase指定的目錄,並將zrlog的war檔案移動到該目錄下:

[[email protected] ~]# mkdir /data/wwwroot/zrlog.cn
[[email protected] ~]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/zrlog.cn/

完成以上操作後,在Windows中繫結hosts

六、Tomcat日誌

[[email protected] ~]# ls /usr/local/tomcat/logs/
catalina.2017-08-29.log      localhost.2017-08-29.log
catalina.out                 localhost_access_log.2017-08-29.txt
host-manager.2017-08-29.log  manager.2017-08-29.log

說明:

catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關資訊,也會記錄錯誤日誌。
catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。
host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。
localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶access字樣的為預設虛擬主機的錯誤日誌。
訪問日誌預設不會生成,需要在server.xml中配置一下。

配置訪問日誌 具體方法是在對應虛擬主機的裡面加入下面的配置(以域名www.zrlog.cn為例):

    <Host name="www.zrlog.cn" appBase=""
          unpackWARs= "true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="/data/wwwroot/zrlog.cn/" debug="0" reloadable="true" crossContext="true"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="www.zrlog.cn_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>

核心引數: 說明: prefix定義訪問日誌的字首; suffix定義日誌的字尾; pattern定義日誌格式。

新增加的虛擬主機預設並不會生成類似預設虛擬主機的那個localhost.日期.log日誌,錯誤日誌會統一記錄到catalina.out中。關於Tomcat日誌,你最需要關注catalina.out,當出現問題時,我們應該第一想到去檢視它

擴充套件