day61:配置Tomcat虛擬主機及日記

一、配置Tomcat監聽80端口,因爲在訪問tomcat的網頁時須要在網址後面加上:8080的端口,而要想直接訪問的話,則須要修改成80的端口便可:java

1:配置Tomcat監聽80端口:  修改配置文件:   /usr/local/tomcat/conf/server.xmlmysql

[root@localhost_002 tomcat]# vim /usr/local/tomcat/conf/server.xml 
    #<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
把這一行修改成:
     <Connector port="80" protocol="HTTP/1.1"

2:而後重啓啓動apache服務:         /usr/local/tomcat/shutdown.shweb

[root@localhost_002 tomcat]# /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_002 tomcat]# /usr/local/tomcat/bin/startup.sh

註釋:發現重啓apache時沒有起來,查看日記後而且監聽端口80已經被佔用:信息以下:sql

[root@localhost_002 tomcat]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:52588           0.0.0.0:*               LISTEN      871/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1081/master         
tcp6       0      0 :::52588                :::*                    LISTEN      871/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      1212/httpd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1081/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1795/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1795/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      1094/mysqld

註釋:發現80端口已經被apache(http)佔用,能夠說明當80端口被佔用時,其他須要80端口的服務就沒法啓動了,其而且查看其訪問日記以下:數據庫

[root@localhost_002 logs]# tail -f catalina.2018-08-30.log 
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
30-Aug-2018 22:06:12.330 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
30-Aug-2018 22:06:12.331 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]

3:解決辦法:須要關閉apache服務,而後在從新啓動Tomcatapache

[root@localhost_002 logs]# /usr/local/apapche2.4/bin/apachectl stop    #關閉apache服務:
[root@localhost_002 logs]# /usr/local/tomcat/bin/shutdown.sh       #關閉tomcat服務:
[root@localhost_002 logs]# /usr/local/tomcat/bin/shutdown.sh       #啓動tomcat服務:
[root@localhost_002 logs]# netstat -lntp              #查看其監聽端口:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:52588           0.0.0.0:*               LISTEN      871/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1081/master         
tcp6       0      0 :::52588                :::*                    LISTEN      871/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      1972/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1081/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1972/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1972/java           
tcp6       0      0 :::3306                 :::*                    LISTEN      1094/mysqld

註釋:發現tomcat服務能夠正常啓動,而且其端口爲80:bootstrap

二、配置Tomcat的虛擬主機:一個服務器支持一個IP能夠訪問多個域名,每一個域名錶明一個網站,即一個虛擬主機:vim

1:修改其Tomcat的配置文件:        /usr/local/tomcat/conf/server.xml                #新增配置文件:瀏覽器

[root@localhost_002 ROOT]# vim /usr/local/tomcat/conf/server.xml
</Host>
      <Host name="www.123.cn" appBase=""
#核心文件1:  name是定義域名, appBase是定義應用的目錄:
         unpackWARs= "true" autoDeploy="true"
#核心文件2:  unpackWARs定義是否自動解壓WAR包在appBase,autoDeploy表示tomcat服務運行時可以檢測appBase下的文件,當有新的web應用加入進來,會自動發佈這個應用:
         xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
      </Host>
    </Engine>
  </Service>
</Server>

註釋:核心配置文件只有如下四行tomcat

name="www.123.cn"   表示指定域名:

appBase=" "  定義tomcat的應用(war文件)存放位置:

unpackWARs= "true"  表示是否自動解壓WAR包,當把WAR包放到appBase裏面的時候會自動解壓的:true則是解壓:

docBase="/data/wwwroot/123.cn/"   也能夠解壓到指定的目錄,經過docbase來定義:至關因而把war包解壓後的文件放到了這個目錄:
若是你不想解壓的話,則能夠放到appBase目錄:能夠在使用appBase和docBase二選一,則須要把其中一個設置爲空則能夠:

註釋:定義了docBase後就以該目錄爲主了:

2:本節咱們經過部署一個java的博客應用來體會下appBase和docBahse目錄的應用:

1:下載這個war包的程序zrlog: wget  http://d1.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

[root@localhost_002 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
已發出 HTTP 請求,正在等待迴應... 200 OK
長度:7122027 (6.8M) [application/zip]
正在保存至: 「zrlog-1.7.1-baaecb9-release.war」
100%[===========================================================================================>] 7,122,027   4.12MB/s 用時 1.6s   
2018-08-30 23:21:57 (4.12 MB/s) - 已保存 「zrlog-1.7.1-baaecb9-release.war」 [7122027/7122027])

2:把下載後的文件挪位置到tomcat:      /usr/local/tomcat/webapps/

[root@localhost_002 src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/

3:此時會發現webapps裏的zrlog的已經自動解壓到了目錄:      #這得益於我定義的unpackWARs="true"

[root@localhost_002 webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog-1.7.1-baaecb9-release  zrlog-1.7.1-baaecb9-release.war

註釋:可是若是咱們挪走了這個目錄,解壓後的目錄也會消失,因此咱們須要修更名稱,由於若是下面安裝博客時,會自動覆蓋和解壓到此目錄:

註釋:ROOT目錄下主要放一些圖片之類的,若是網站涉及到一些圖片之類的,能夠放在此目錄下:

[root@localhost_002 webapps]# mv zrlog-1.7.1-baaecb9-release   zrlog

4:此時咱們在瀏覽器裏訪問,會出現安裝嚮導:      http://192.168.149.130/zrlog

5:在mysql建立相關數據庫和用戶:   /usr/local/mysql/bin/mysql

[root@localhost_002 webapps]# /usr/local/mysql/bin/mysql    #進入mysql數據庫:
mysql> create database zrlog;         #建立zrlog數據庫:
Query OK, 1 row affected (0.04 sec)
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'nihao123!';  #建立zrlog用戶:
Query OK, 0 rows affected (0.13 sec)
mysql> quit
Bye
[root@localhost_002 webapps]# /usr/local/mysql/bin/mysql -uzrlog -h127.0.0.1 -pnihao123! #測試用戶:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zrlog              |
+--------------------+
3 rows in set (0.07 sec)

mysql> quit
Bye

註釋:首先創進入mysql後,並建立數據庫和對應用戶,而後測試當前用戶是否能夠登陸:

由圖例看到,咱們進入mysql經過絕對路徑進入,能夠把mysql加入到絕對路徑後,能夠經過mysql直接登陸:以下:

通常有臨時修改和永久修改兩種辦法,以下:

[root@localhost_02 ~]# /usr/local/mysql/bin/mysql
mysql> quit
Bye
#臨時添加絕對路徑,重啓後失效:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/root/bin:/usr/local/mysql/bin
[root@localhost_02 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/root/bin:/usr/local/mysql/bin
#永久添加絕對路徑,需修改/etc/profile文件:加入以下一行:
[root@localhost_02 ~]# vim /etc/profile
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/usr/local/mysql/bin
[root@localhost_02 ~]# mysql
mysql> quit
Bye

6:而後把相關信息(mysql數據庫名和密碼)輸入到博客的頁面,以下:

7:而後點擊下一步:設置管理員密碼:admin,還有網站標題:子標題:

8:點擊下一步後,查看你的網站,以下:

3:因爲訪問是經過192.168.149.130/zrlog(IP加域名)訪問,那怎麼設置經過IP地址直接訪問該博客,設置以下

因爲在以前的時候定義過docBase,而docBase是直接存放解壓後的war文件: 以下:

<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的目錄在/data/wwwroot/123.cn/目錄下,全部須要把zrlog裏的全部文件挪位置到docBase所定義的目錄下才能夠:以下:

[root@localhost_02 tomcat]# mkdir /data/wwwroot/123.cn 
[root@localhost_02 tomcat]# mv webapps/zrlog/* /data/wwwroot/123.cn/
[root@localhost_02 tomcat]# ls !$
ls /data/wwwroot/123.cn/
admin  assets  error  favicon.ico  include  install  META-INF  WEB-INF

1:而後須要重啓啓動服務,而且須要等8005端口(管理)起來後才能夠訪問:

[root@localhost_02 tomcat]# /usr/local/tomcat/bin/shutdown.sh     #關閉:
[root@localhost_02 tomcat]# /usr/local/tomcat/bin/startup.sh      #啓動:
[root@localhost_02 tomcat]# netstat -lntp|grep java
tcp6       0      0 :::80                   :::*                    LISTEN      2843/java           
tcp6       0      0 127.0.0.1:56178         :::*                    LISTEN      2864/java           
tcp6       0      0 127.0.0.1:46178         :::*                    LISTEN      2864/java           
tcp6       0      0 127.0.0.1:26178         :::*                    LISTEN      2864/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2843/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2843/java

2:訪問測試:在瀏覽器輸入域名:www.123.cn        註釋:須要在物理機綁定hosts:

註釋:可能會啓動一些其餘的端口,這是一些其餘的應用端口了:

三、Tomcat日記:有四類日記:   /usr/local/tomcat/logs

[root@localhost_02 tomcat]# ls logs/
catalina.2018-08-30.log      host-manager.2018-08-31.log   manager.2018-08-31.log
catalina.2018-08-31.log      catalina.out                  manager.2018-08-30.log   
localhost.2018-08-31.log     localhost_access_log.2018-08-30.txt

cattalina開頭的日記爲tomcat的綜合日記,記錄tomcat的服務相關信息,也記錄錯誤日記:

註釋:其中catalina.2018.xx-xx.log和catalina.out內容相同,前者是天天會生成一個新的日記:

host-managermanager爲管理相關日記,其中host-manager爲虛擬主機的日記:

localhostlocalhost_access爲虛擬主機相關日記,其中帶access字的是訪問日記,不帶access字的爲錯誤日記:訪問日記默認沒有,須要配置:

配置訪問日記:   /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"/>
#下面的內容是日記格式:
        <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>

核心參數:<Valve/> 說明: prefix定義訪問日誌的前綴; suffix定義日誌的後綴; pattern定義日誌格式。 新增長的虛擬主機默認並不會生成相似默認虛擬主機的那個localhost.日期.log日誌,錯誤日誌會統一記錄到catalina.out中。關於Tomcat日誌,你最須要關注catalina.out,當出現問題時,咱們應該第一想到去查看它。

相關文章
相關標籤/搜索