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 "%r" %s %b" />
</Host>
核心引數: 說明: prefix定義訪問日誌的字首; suffix定義日誌的字尾; pattern定義日誌格式。
新增加的虛擬主機預設並不會生成類似預設虛擬主機的那個localhost.日期.log日誌,錯誤日誌會統一記錄到catalina.out中。關於Tomcat日誌,你最需要關注catalina.out,當出現問題時,我們應該第一想到去檢視它