1. 程式人生 > >Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌

Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌

inpu 數據庫 網站 connector example handle length 創建 ssl

配置Tomcat監聽80端口
1.配置Tomcat服務的訪問端口

Tomcat默認啟動的端口是8080,如果你想修改為80,則需要修改server.xml文件。

[root@gary-tao src]# vim /usr/local/tomcat/conf/server.xml

按如下需求更改:
找到Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"

[root@gary-tao 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
[root@gary-tao 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.
[root@gary-tao src]# ps aux |grep java
root      21382 15.6  8.1 2294080 81052 pts/1   Sl   17:17   0:05 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      21426  0.0  0.0 112680   972 pts/1    R+   17:18   0:00 grep --color=auto java
[root@gary-tao src]# netstat -lntp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      21382/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      21382/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      21382/java          

技術分享圖片

配置Tomcat的虛擬主機

1.介紹Tomcat虛擬主機的概念

打開配置文件/usr/local/tomcat/conf/server.xml查看它的結構

技術分享圖片

其中<Host>和</Host>之間的配置為虛擬主機配置部分,name定義域名,
appBase定義應用的目錄,Java的應用通常是一個war的壓縮包,你只需要將war的壓縮包放到appBase目錄下面即可。

之前瀏覽器訪問的默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT裏:

[root@gary-tao src]# cd /usr/local/tomcat/webapps/
[root@gary-tao webapps]# ls ROOT
asf-logo-wide.svg  bg-middle.png    bg-nav.png    favicon.ico  RELEASE-NOTES.txt  tomcat.gif  tomcat-power.gif  WEB-INF
bg-button.png      bg-nav-item.png  bg-upper.png  index.jsp    tomcat.css         tomcat.png  tomcat.svg

其中index.jsp就是Tomcat的默認頁面,你也可以用curl命令來訪問一下tomcat.gif圖片:

[root@gary-tao webapps]# curl localhost:8080/tomcat.gif -I
HTTP/1.1 200 
Accept-Ranges: bytes
ETag: W/"2066-1511789494000"
Last-Modified: Mon, 27 Nov 2017 13:31:34 GMT
Content-Type: image/gif
Content-Length: 2066
Date: Thu, 18 Jan 2018 07:36:57 GMT
2.增加一個虛擬主機
[root@gary-tao src]# vim /usr/local/tomcat/conf/server.xml 

增加如下配置內容:

<Host name="www.123.cn" appBase=""
    unpackWARs= "true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
</Host>

//docBase,這個參數用來定義網站的文件存放路徑,如果不定義,
默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,
其中appBase和docBase可以一樣。在這一步操作過程中很多同學遇到過訪問404的問題,其實就是docBase沒有定義對。
//appBase為應用存放目錄,通常是需要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄

示例如圖:

技術分享圖片

舉例說明:

下面我們通過部署一個java的應用來體會appBase和docBase目錄的作用

1.下載zrlog,建立一個博客測試
[root@gary-tao src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war  //下載zrlog 
[root@gary-tao src]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@gary-tao src]# mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog
[root@gary-tao webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war
瀏覽器訪問 ip:8080/zrlog

技術分享圖片

2.數據庫配置
[root@gary-tao webapps]# ps aux |grep mysql
root       3237  0.0  0.1 113268  1364 ?        S    1月12   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/gary-tao.pid
mysql      3373  0.0 45.3 1301004 453000 ?      Sl   1月12   3:17 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/gary-tao.err --pid-file=/data/mysql/gary-tao.pid --socket=/tmp/mysql.sock
root      23828  0.0  0.0 112680   976 pts/1    R+   11:23   0:00 grep --color=auto mysql
[root@gary-tao webapps]# mysql -uroot -pszyino-123
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.6.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

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 ‘szyino-123‘;  //創建一個用戶
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@gary-tao webapps]# mysql -uzrlog -h127.0.0.1 -pszyino-123
//檢測創建用戶是否可以連接
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 47
Server version: 5.6.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zrlog              |
+--------------------+
3 rows in set (0.00 sec)
3.配置zrlog安裝

第一步填寫數庫信息(在瀏覽器中保存密碼)
技術分享圖片

第二步填寫網站信息(在瀏覽器中保存密碼)
技術分享圖片

第三步完成後點擊查看
技術分享圖片

4.去掉瀏覽器訪問時輸入的目錄名
[root@gary-tao webapps]# mkdir /data/wwwroot/123.cn
[root@gary-tao webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
[root@gary-tao webapps]# /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
[root@gary-tao webapps]# /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.
[root@gary-tao webapps]# !net
netstat -lntp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      24437/java          
tcp6       0      0 127.0.0.1:55089         :::*                    LISTEN      24457/java          
tcp6       0      0 127.0.0.1:45089         :::*                    LISTEN      24457/java          
tcp6       0      0 127.0.0.1:25089         :::*                    LISTEN      24457/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      24437/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      24437/java          
[root@gary-tao webapps]# netstat -lntp |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      24437/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      24437/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      24437/java   
本地瀏覽器測試
  1. 添加綁定本地hosts文件,如172.16.111.100 www.123.cn
  2. 打開本機cmd,ping www.123.cn 是否通信,如下圖:
    技術分享圖片
  3. 瀏覽器訪問,正常。
    技術分享圖片

Tomcat日誌

Tomcat的日誌目錄為/usr/local/tomcat/logs,主要有四大類日誌:

[root@gary-tao tomcat]# ls /usr/local/tomcat/logs
catalina.2018-01-17.log  host-manager.2018-01-17.log  localhost.2018-01-18.log             manager.2018-01-17.log
catalina.2018-01-18.log  host-manager.2018-01-18.log  localhost_access_log.2018-01-17.txt  manager.2018-01-18.log
catalina.out             localhost.2018-01-17.log     localhost_access_log.2018-01-18.txt

解釋說明:

  • 其中catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關信息,也會記錄錯誤日誌。
  • 其中catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。
  • host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。
  • localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶access字樣的為默認虛擬主機的錯誤日誌。
註意:

訪問日誌默認不會生成,需要在/usr/local/tomcat/conf/server.xml中配置一下,具體方法是在對應虛擬主機的<Host></Host>裏面加入下面的配置(假如域名為123.cn):

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
         prefix="123.cn_access" suffix=".log"
         pattern="%h %l %u %t &quot;%r&quot; %s %b" />

示例圖如下:

技術分享圖片

  1. prefix定義訪問日誌的前綴;
  2. suffix定義日誌的後綴;
  3. pattern定義日誌格式。
  4. 新增加的虛擬主機默認並不會生成類似默認虛擬主機的那個localhost.日期.log日誌,錯誤日誌會統一記錄到catalina.out中。
備註:關於Tomcat日誌,你最需要關註catalina.out,當出現問題時,我們應該第一想到去查看它。

Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌