配置Tomcat监听80端口配置Tomcat虚拟主机Tomcat日志
2019獨角獸企業重金招聘Python工程師標準>>>
16.4 配置Tomcat監聽80端口
Tomcat默認監聽8080、8005以及8009端口,日常進行瀏覽器訪問時,需要輸入域名+端口,十分不方便,我們可以通過修改Tomcat配置文件,使其監聽80端口,即可解決這個問題。
修改配置文件
vim /usr/local/tomcat/conf/server.xml 將Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"重啟Tomcat服務
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh查看監聽的端口
netstat -lntp |grep java tcp6 0 0 :::80 :::* LISTEN 2108/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2108/java tcp6 0 0 :::8009 :::* LISTEN 2108/java8005端口監聽速度要稍慢一些,在8005端口監聽之前,訪問Tomcat服務主頁的速度會比較慢
注:如果Tomcat沒有監聽80端口,可能是其他服務將80端口占用(如Nginx),需要先停止相關服務,再重啟Tomcat即可。
16.5/16.6/16.7 配置Tomcat虛擬主機
在之前的學習中,Apache還是nginx都屬于webServer,都支持虛擬主機配置文件,虛擬主機配置文件就是一臺服務器上或者一個webserver上,支持一個IP下可以訪問多個域名,每個域名代表一個網站,所以可以配置多個網站,每個網站的虛擬主機,每個網站的許配置文件都是一個虛擬主機,tomcat同樣也支持這個概念
虛擬主機配置文件簡介
vim /usr/local/tomcat/conf/server.xml<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using pattern="common" --><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /></Host>其中<Host>和</Host>之間的配置為虛擬主機配置部分
- name定義域名
- appBase定義應用的目錄,比如搭建了一個tomcat,想要使用tomcat去跑一個網站,那么需要網站放在哪里呢?
- 首先你的應用不能是一個傳統所謂的目錄,Apache,nginx訪問網站,首先需要指定一個目錄,目錄里存放著PHP文件或者是html的文件,然后去訪問;而tomcat則不一樣,它需要提供一個WAR的包,就是一個壓縮包,這個壓縮包里面包含著運行這個網站的一些文件,包括配置,js代碼,數據庫相關的等等,都需要打包成war這種文件,而這個文件需要放置到 webapps 里面。
- Java的應用通常是一個war的壓縮包,你只需要將war的壓縮包放到appBase目錄下面即可。剛剛訪問的Tomcat默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT里。
- unpackWARs 就是是否自動的解壓war這個包,也就是war包放到webapps里面,就會自動解壓
- 除了使用war包以外,還可以單獨的指定目錄,這個目錄里面存放著一些jsp文件,也就是提供的不是war包,而就是一個目錄,這個目錄里面有jsp的程序,如果是這樣,還需要docbase去定義
- webapps的默認路徑為/usr/local/tomcat/webapps/,webapps目錄下,默認有5個目錄(docs examples host-manager manager ROOT)
- autoDeploy 如果此項設置為true,表示tomcat服務處于運行狀態,能夠檢測appbase下的文件,如果有新的web應用加入進來,會自動發布這個web應用
增加虛擬主機
增加虛擬主機,編輯/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>docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,其中appBase和docBase可以一樣。
如果不定義appbase,不想要war存在,可以用docBase定義一個目錄,目錄里放網站的程序,這個相當于把war包解壓放到目錄里,如果不想要解壓這個包,就可以放到appbase里面,這兩個二選一,如果同時存在,可以把其中一個寫空,防止相互干擾,有時會出現404問題,就有可能是appbase或者docbase定義錯誤。
下面通過部署一個java的應用來體會appBase和docBase目錄的作用
下載zrlog
wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.warappBase為應用存放目錄(實際上是一個相對路徑,相對于 /usr/local/tomcat/ 路徑),它可以自動解壓war包,通常是需要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄
拷貝源文件
cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/ [root@linux-5 ~]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war通過ls命令可以發現,當文件拷貝至webapps目錄下后,沒有進行任何操作,war包已被自動解壓。
[root@linux-5 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog [root@linux-5 ~]# rm -f /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release.war刪除webapps目錄下的war包,避免重復解壓,注意要現將解壓后的目錄改名字,否則連同解壓后的目錄會被一起刪掉
訪問zrlog
瀏覽器輸入192.168.88.5/zrlog訪問后會彈出安裝向導,填寫數據庫相關信息,zrlog不會自動創建,因此在安裝之前我們需要創建相應的數據庫與用戶。
檢查數據庫是否正常啟動
[root@linux-5 webapps]# ps aux|grep mysql root 981 0.0 0.0 115384 1692 ? S 19:17 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux-5.pid mysql 1344 0.0 24.2 973052 452220 ? Sl 19:17 0:05 /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/linux-5.err --pid-file=/data/mysql/linux-5.pid --socket=/tmp/mysql.sock --port=3306 root 3124 0.0 0.0 112676 984 pts/0 R+ 23:02 0:00 grep --color=auto mysql創建數據庫
mysql> create database zrlog;創建用戶并授權數據庫
mysql> grant all on zrlog.* to 'zrlog'@'127.0.0.1' identified by '123456';登錄用戶驗證操作
[root@linux-5 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 3 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> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zrlog | +--------------------+ 3 rows in set (0.00 sec)繼續安裝zrlog
檢查無誤后,按要求填寫相關信息
按要求完成安裝后,即可查看主界面
通過appBase的方式搭建有一個缺點,在訪問時除了輸入地址外,還需要加一個/zrlog的目錄。
針對上述問題,可以采用docBase指定路徑,解決這個問題
創建docBase指定的路徑
mkdir /data/wwwroot/123.cn/移動文件路徑
將zrlog的文件目錄移動到docBase指定路徑下
[root@linux-5 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/修改Windows上的hosts
重啟Tomcat服務
/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh訪問測試
瀏覽器輸入www.123.cn網站可以正常訪問
注:在自定義appBase的目錄時,應在自定義的目錄下創建一個ROOT目錄,并將圖片、靜態文件、主頁等存于該目錄下,因為appBase搭建,默認訪問的是自定義目錄下的ROOT目錄。否則在訪問時可能會遇到404問題。
16.8 Tomcat日志
查看日志列表
[root@linux-5 webapps]# ls /usr/local/tomcat/logs catalina.2018-07-04.log host-manager.2018-07-04.log localhost.2018-07-05.log manager.2018-07-04.log catalina.2018-07-05.log host-manager.2018-07-05.log localhost_access_log.2018-07-04.txt manager.2018-07-05.log catalina.out localhost.2018-07-04.log localhost_access_log.2018-07-05.txt? 其中catalina開頭的日志為Tomcat的綜合日志,它記錄Tomcat服務相關信息,也會記錄錯誤日志。
? 其中catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日志。
? host-manager和manager為管理相關的日志,其中host-manager為虛擬主機的管理日志。
? localhost和localhost_access為虛擬主機相關日志,其中帶access字樣的日志為訪問日志,不帶access字樣的為默認虛擬主機的錯誤日志。
訪問日志默認不會生成,需要在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 "%r" %s %b" />prefix定義訪問日志的前綴,suffix定義日志的后綴,pattern定義日志格式。新增加的虛擬主機默認并不會生成類似默認虛擬主機的那個localhost.日期.log日志,錯誤日志會統一記錄到catalina.out中。關于Tomcat日志,最需要關注catalina.out,當出現問題時,我們應該第一想到去查看它。
轉載于:https://my.oschina.net/u/3804357/blog/1840326
總結
以上是生活随笔為你收集整理的配置Tomcat监听80端口配置Tomcat虚拟主机Tomcat日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决text-overflow: ell
- 下一篇: Rsync+inotify搭建实时同步系