1. 程式人生 > >16.4-16.8 Tomcat監聽80端口,Tomcat的虛擬主機,訪問日誌

16.4-16.8 Tomcat監聽80端口,Tomcat的虛擬主機,訪問日誌

Tomcat Tomcat虛擬主機 Tomcat訪問日誌

16.4 配置Tomcat監聽80端口

大綱

技術分享圖片

Tomcat默認監聽8080端口,如果想修改監聽80端口,則需要修改Tomcat的配置文件,server.xml

1 修改server.xml

#vim /usr/local/tomcat/conf/server.xml

2 找到Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"

找到並修改,

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

修改後

<Connector port="80" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />


3 重啟服務

[root@AliKvn 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@AliKvn tomcat]# /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.


4 檢查進程和監聽端口狀態

[root@AliKvn tomcat]# ps aux |grep java

root 19693 2.4 4.4 2501500 84308 pts/1 Sl 11:03 0:02 /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 19728 0.0 0.0 112660 964 pts/1 R+ 11:05 0:00 grep --color=auto java

[root@AliKvn tomcat]# netstat -lntp |grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29522/nginx: master

tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 19693/java

tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 19693/java

可以看到監聽80端口的是nginx,此時nginx占用了80端口。

此時如果nginx把80端口占用了並導致tomcat修改的80端口監聽失敗的話,可以把nginx停掉,把80端口給空出來。

4.1 把nginx服務停止,並重啟Tomcat服務

[root@AliKvn tomcat]# /etc/init.d/nginx stop

Stopping nginx (via systemctl): [ OK ]

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

-bash: /usr/local/tomcat/bin/startup.sh.sh: No such file or directory

[root@AliKvn tomcat]# /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

4.2 再次檢查監聽的80端口(8005加載會比較慢,因為是管理端口)

[root@AliKvn tomcat]# netstat -lntp |grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19793/java

tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 19793/java

tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 19793/java

4.3 在windows測試訪問tomcat網頁

利用本地ip直接在瀏覽器訪問,不需要加任何端口(因為訪問瀏覽器是通過80端口)




vim /usr/local/tomcat/conf/server.xml

Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh



16.5 配置Tomcat的虛擬主機(上)

大綱

技術分享圖片

在之前的httpd和nginx裏,提到有虛擬主機的概念,其實Tomcat也有虛擬主機一說。

Tomcat的虛擬主機配置文件是/usr/local/tomcat/conf/server.xml

1 介紹參數

#vim /usr/local/tomcat/conf/server.xml

技術分享圖片

參數解釋:

其中<Host>和</Host>之間的配置為虛擬主機配置部分,name定義域名。

appBase定義應用的目錄,Java的應用通常是一個war的壓縮包,只需要將war的壓縮包放到appBase目錄下面即可。

(而httpd,nginx定義的虛擬主機目錄是root)

unpackWARs表示自動解壓war包,前提條件是war在appBase目錄下(appBase的目錄在/usr/local/tomcat/webapps/

剛剛訪問的Tomcat默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT裏。


2 創建新的虛擬主機

在</Host>開始建立新的虛擬主機

#vim /usr/local/tomcat/conf/server.xml 在</Host>下一行加入如下參數

<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>

參數解釋:

Host name="www.123.cn"

域名是www.123.cn

docBase="/data/wwwroot/123.cn/"

不定義war包,就需要定義docBase,其實這裏相當於是war後解壓後的文件。

docBase與appBase二選一,如果同時存在,需要把其中一項寫空。


16.6 配置Tomcat虛擬主機(中)

大綱

技術分享圖片

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

1 下載zrlog到/usr/local/src

#cd /usr/local/src

#wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

2 appBase的目錄裏的文件能自動解壓war包(前提條件是unpackWARs= "true")

appBase的目錄在

[root@AliKvn src]# ls /usr/local/tomcat/webapps/

docs examples host-manager manager ROOT

2.1 cp zrlog的包到appBase下

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

[root@AliKvn src]# !ls

ls /usr/local/tomcat/webapps/

docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release.war

2.2再次進入appBase目錄,zrlog包已經被解壓,是因為unpackWARs= "true"參數起了作用

[root@AliKvn 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

2.3 將解壓後的war包改名(改名的目的是方便後面頁面訪問,因為網頁訪問就是訪問war後的內容)

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

[root@AliKvn webapps]# ls

docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release.war

2.4 改名完成後,war包發現自己解壓出來的包不見了,從而還會繼續自動解壓(有必要時可以刪掉war包)

[root@AliKvn webapps]# ls

docs host-manager ROOT zrlog-1.7.1-baaecb9-release

examples manager zrlog zrlog-1.7.1-baaecb9-release.war

3 訪問zrlog

在網頁訪問zrlog,進行配置(本機ip/zrlog)

技術分享圖片

3.1 進入mysql創建一個庫名為zrlog的庫

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 'aminglinux1';

Query OK, 0 rows affected (0.00 sec)

zrlog用戶登錄,查看數據庫,庫添加成功。

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| test |

| zrlog |

+--------------------+

3 rows in set (0.00 sec)

回到windows瀏覽器zrlog配置訪問頁面,錄入相關信息

技術分享圖片

端口默認3306

設置管理者信息

技術分享圖片

完成

4 配置完成後,再次訪問zrlog頁面

技術分享圖片

4.1 發文章測試

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

總結:

1 Tomcat環境搭建:JDK+Tomcat

2 下載war包到appBase,讓其自動解壓,解壓後的目錄就是部署的項目

3 配置數據庫(添加zrlog賬號,zrlog庫),管理數據。



16.7 配置Tomcat虛擬主機(下)

訪問zrlog不通過域名ip/zrlog的形式登錄訪問,而是直接通過域名訪問。

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

</Host>

<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>

利用新建的www.123.cn虛擬主機做實驗

1.1 創建123.cn的目錄

[root@AliKvn webapps]# mkdir /data/wwwroot/123.cn

1.2 把zrlog下面的相關程序摞到www.123.cn的docBase下面

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

2 綁定windows的本機host

在host裏面添加www.123.cn

2.1 綁定完成後,ping測試

ping後的ip必須會是本機的ip.

3 配置完成後,需要重啟tomcat服務

[root@AliKvn 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@AliKvn 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.1 查看監聽端口

[root@AliKvn webapps]# netstat -lntp |grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 20619/java

tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 20619/java

tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 20619/java

4 在windows瀏覽器測試

技術分享圖片

5 tomcat/root目錄

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


總結:

1 本機IP訪問zrlog需要加/zrlog/(格式是:本機ip/zrlog/),

原因是appBase定義了webapps,而webapps是一個相對路徑,相對於/usr/local/tomcat/webapps

它是利用war包(zrlog目錄)來打開應用的,所以需要加/zrlog/

2 www.123.cn直接跳轉到zrlog頁面,是因為定義了docBase,而docBase相當於是www.123.cn的目錄,

要想直接從www.123.cn跳轉到zrlog,把web的應用相關文件(zrlog目錄裏面的文件)全部拷貝到裏面,從而達到使用webapp(zrlog)的使用目的。

3 appBase與docBase二選一

appBase 放war包

docBase 放webapp,網站程序


16.4-16.8 Tomcat監聽80端口,Tomcat的虛擬主機,訪問日誌