配置Tomcat虛擬主機
12月13日任務
16.4 配置Tomcat監聽80埠
16.5/16.6/16.7 配置Tomcat虛擬主機
16.8 Tomcat日誌
配置tomcat監聽80埠
預設tomcat監聽的是8080埠,如果想直接輸入ip就訪問到網頁,就需要進行如下操作:
- 修改配置檔案
[root@localhost src]# vim /usr/local/tomcat/conf/server.xml /定位到8080 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 修改8080為80,儲存退出
- 重啟服務
# 先關閉後啟動
[root@localhost src]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost src]# /usr/local/tomcat/bin/startup.sh
- 驗證是否生效
[root@localhost src]# netstat -lntp | grep java tcp6 0 0 :::80 :::* LISTEN 2823/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2751/java tcp6 0 0 :::8009 :::* LISTEN 2751/java
如果系統內已經安裝並啟動了apache/nginx web服務,80端已被佔用,需要關閉這些web伺服器,然後重啟tomcat服務。
Tomcat虛擬主機
跟apache/nginx web伺服器一樣,tomcat也可以設定虛擬主機。
在tomcat配置檔案中<Host>和</Host>之間的配置為虛擬主機配置部分,name定義域名,appBase定義應用的目錄,Java的應用通常是一個war的壓縮包,你只需要將war的壓縮包放到appBase目錄下面即可。
[root@localhost src]# 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> # 部分引數說明: # name:需要填寫的是虛擬主機的域名 # appBase:應用專案(WAR包)所在目錄,配合unpackWARs將自動解壓WAR包成一個程式目錄 # WAR包:開發人員開發的組建網站的各種網頁、配置、jsp程式碼、資料庫相關檔案會被打包成一個WAR包,便於存放和傳輸。 # unpackWARs: 自動解壓WAR包 # docBase:在該處定義的目錄記憶體放的是解壓後的WAR包的檔案,定義了該項後,以該目錄為主,appBase可以不需要定義,也可以定義成一樣;如果不定義,預設檔案存放在appBase/ROOT下,兩者取其以即可。如果docBase沒有定義正確,任意產生404錯誤。
appBase和docBase
appBase內寫的是相對路徑,其相對的是/usr/local/tomcat/
使用WAR包的時候需要寫appBase,同時unpackWARs需要設定成“True”,否則無法自動解壓。
如果提供的網站是一個目錄,那些所涉及的所有檔案就放在docBase引數所指定的目錄下。
webapps目錄下的ROOT目錄
[root@localhost webapps]# ls ROOT/
asf-logo-wide.svg bg-upper.png tomcat.gif
bg-button.png favicon.ico tomcat.png
bg-middle.png index.jsp tomcat-power.gif
bg-nav-item.png RELEASE-NOTES.txt tomcat.svg
bg-nav.png tomcat.css WEB-INF
可以直接通過localhost/index.jsp
/ localhost/bg-nav.png
的方式進行訪問,即預設訪問的是ROOT目錄
自己定義的程式目錄也需要建立一個ROOT目錄,同時把圖片、靜態檔案放在ROOT目錄下,這樣就可以直接訪問自定義網站了。
虛擬主機例項 --- zrlog部落格的搭建
搭建好tomcat環境後,我們可以搭建一個簡單的blog應用網站來體驗下。
- 下載zrlog的WAR包
[root@localhost src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@localhost src]# du -sh zrlog-1.7.1-baaecb9-release.war 6.8M zrlog-1.7.1-baaecb9-release.war
- 移動至tomcat目錄下的webapps目錄內
[root@localhost src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
# 改名的目的是為了訪問的方便,畢竟包名有點長
[root@localhost webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
- 建立相關資料庫及使用者
# 前提是系統內有mysql並啟動
[root@localhost webapps]# ps aux | grep mysql
# 登入mysql,去建立zrlog使用者
[root@localhost webapps]# mysql -uroot -p
Enter password:
# 建立資料庫zrlog
mysql> create database zrlog;
Query OK, 1 row affected (0.03 sec)
# 建立新使用者zrlog,並賦予其許可權
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'zrlog';
Query OK, 0 rows affected (0.04 sec)
mysql> quit
Bye
# 使用zrlog使用者登入測試
[root@localhost webapps]# mysql -uzrlog -h127.0.0.1 -p
Enter password:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| zrlog |
+--------------------+
3 rows in set (0.03 sec)
mysql> quit
Bye
-
使用瀏覽器登入註冊
- 輸入剛建立的zrlog使用者及其密碼,郵箱隨意
- 設定管理員密碼,自定義網站標籤及子標題
- 完成註冊
- 部落格效果圖
註冊成功後使用admin賬戶就可以登入部落格自由的編輯、釋出blog了!
Tomcat日誌
[root@localhost tomcat]# ls /usr/local/tomcat/logs/
tomcat的日誌分為4類:
- catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關資訊,也會記錄錯誤日誌。tomcat會每天生成一個新的日誌catalina.YYYY-mm-dd.log。catalina.out內容相同
- host-manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。日誌內容可能為空
- manager也是管理相關的日誌,與host-manager類似
- localhost開頭的為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶access字樣的為預設虛擬主機的錯誤日誌
訪問日誌預設不生成,需要在server.xml內定義
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="123.cn_access" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
# directory定義日誌存放的目錄,這裡是/usr/local/tomcat/logs目錄
# prefix定義訪問日誌的字首
# suffix定義日誌的字尾
# pattern定義日誌格式。
新增加的虛擬主機預設並不會生成類似預設虛擬主機的那個localhost.日期.log日誌,錯誤日誌資訊會統一記錄到catalina.out中。因此當出現問題時,應該第一時間去檢視catalina.out檔案。