1. 程式人生 > >2018-3-30 14周5次課 配置Tomcat監聽端口、虛擬主機、日誌

2018-3-30 14周5次課 配置Tomcat監聽端口、虛擬主機、日誌

Tomcat

16.4 配置Tomcat監聽80端口


變更監聽端口:

編輯server.xml,將Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"後,重啟tomcat服務

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml

技術分享圖片

[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh         ##重啟tomcat
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@localhost ~]# /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
[root@localhost ~]# netstat -lntp |grep java                ##80端口java沒有看到
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1322/java
tcp6       0      0 :::8009                 :::*                    LISTEN      1322/java
[root@localhost ~]# netstat -lntp |grep 80                    ##80端口被nginx占用了
tcp        0      0 0.0.0.0:43980           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      854/nginx: master p
tcp6       0      0 :::43807                :::*                    LISTEN      -
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1322/java
tcp6       0      0 :::8009                 :::*                    LISTEN      1322/java
[root@localhost ~]# /etc/init.d/nginx stop
Stopping nginx (via systemctl):                            [  確定  ]
[root@localhost ~]# /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@localhost ~]# /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@localhost ~]# netstat -lntp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      1425/java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1425/java
tcp6       0      0 :::8009                 :::*                    LISTEN      1425/java

因為默認web服務訪問的是80端口,此時再訪問 http://192.168.65.128/ 就不用跟端口號了

技術分享圖片






16.5/16.6/16.7 配置Tomcat虛擬主機


配置虛擬主機:

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml

找到Host,就是虛擬主機

技術分享圖片技術分享圖片



<Host>和</Host>之間的配置為虛擬主機配置部分

name 域名

appBase=" " 定義應用的目錄,Java的應用通常是一個war的壓縮包

unpackWARs="true" 是否自動解壓WAR包,拷貝WAR包到webapps目錄中會自動解壓

autoDeploy="true"



添加虛擬主機:

<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類似,appBase是把jsp文件放在WAR包中,而如果不想WAR包的存在,不定義appBase,那麽可以定義一個目錄,目錄裏面放網站的程序,其實就相當於WAR包解壓完的文件放到裏面,而用docBase來定義目錄位置

註意:appBase和docBase只能選擇一個,另一個留空即可


·docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,其中appBase和docBase可以一樣。在這一步操作過程中很多同學遇到過訪問404的問題,其實就是docBase沒有定義對。

·appBase為應用存放目錄,通常是需要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄


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

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@localhost src]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/src/
[root@localhost src]# ls
apache-tomcat-8.5.29.tar.gz  jdk-8u161-linux-x64.tar.gz                 nginx-1.12.2.tar.gz  zrlog-1.7.1-baaecb9-release.war
httpd-2.2.34                 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz  php-5.6.30
httpd-2.2.34.tar.gz          nginx-1.12.2                               php-5.6.30.tar.bz2
[root@localhost src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@localhost src]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war
[root@localhost src]# rm -rf /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release.war
[root@localhost src]# !ls
ls /usr/local/tomcat/webapps/
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release
[root@localhost src]# mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release.war /tmp/   ##移走war包
[root@localhost webapps]# mv zrlog-1.7.1-baaecb9-release zrlog                               ##改名
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog


·瀏覽器中登錄192.168.65.128/zrlog會出現安裝向導

技術分享圖片


·需要在mysql中創建用戶和數據庫

[root@localhost webapps]# mysql -uroot -p123456
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 1
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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 '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> quit
Bye

[root@localhost webapps]# mysql -uzrlog -h127.0.0.1 -p123456;
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 2
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zrlog              |
+--------------------+
3 rows in set (0.00 sec)

填入配置的信息:

技術分享圖片

下一步

技術分享圖片

下一步完成安裝

之後就可以進入後臺,寫文章並進行管理了

技術分享圖片

技術分享圖片

技術分享圖片



之前訪問zrlog博客是在192,168,65,128/zrlog,zrlog目錄下訪問,如果不想域名後有目錄,可以按照以下步驟做:


1.在server.xml中新增配置虛擬主機:

[root@localhost webapps]# vim /usr/local/tomcat/conf/server.xml

技術分享圖片


2.重啟tomcat服務:

[root@localhost 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@localhost 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.


3.創建網站目錄,移動zrlog目錄內容到123.cn中

[root@localhost webapps]# mkdir /data/wwwroot/123.cn
[root@localhost webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/


4.在hosts中重定向

技術分享圖片


5.此時訪問www.123.cn,就可以看到之前的博客內容了

技術分享圖片

不用再進入目錄才能看到博客內容





16.8 Tomcat日誌


·日誌目錄:

[root@localhost tomcat]# ls logs/

技術分享圖片


·其中catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關信息,也會記錄錯誤日誌。

·其中catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。

·host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。

·localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶·access字樣的為默認虛擬主機的錯誤日誌。


[root@localhost tomcat]# cat logs/catalina.out

技術分享圖片

·訪問日誌默認不會生成,需要在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" />


·prefix定義訪問日誌的前綴,suffix定義日誌的後綴,pattern定義日誌格式。

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


2018-3-30 14周5次課 配置Tomcat監聽端口、虛擬主機、日誌