1. 程式人生 > >配置Tomcat監聽80端口, 配置Tomcat虛擬主機,Tomcat日誌

配置Tomcat監聽80端口, 配置Tomcat虛擬主機,Tomcat日誌

tomcat

配置Tomcat監聽80端口

編輯配置文件
vim /usr/local/tomcat/conf/server.xml
在裏面找到8080
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
將裏面的8080改為80,然後保存退出。
然後先關閉tomcat
/usr/local/tomcat/bin/shutdown.sh
再打開tomcat
/usr/local/tomcat/bin/startup.sh
然後查看端口是否更改成功
netstat -lnpt|grep 80

tcp6 0 0 :::80 ::: LISTEN 1849/java
tcp6 0 0 127.0.0.1:8005 :::
LISTEN 1849/java
tcp6 0 0 :::8009 :::* LISTEN 1849/java
已經更改成功。
如果是實際的生產環境,就不要隨便停掉nginx了。肯定會影響你的線上業務的。
這時候你就可以讓nginx代理tomcat了。
80 代理 8080。

配置Tomcat的虛擬主機

首先編輯配置文件
vim /usr/local/tomcat/conf/server.xml
Host表示虛擬主機,其中<Host>和</Host>之間的配置為虛擬主機配置部分,name定義域名,appBase定義應用的目錄,Java的應用通常是一個war的壓縮包,你只需要將war的壓縮包放到appBase目錄下面即可。appBase="webapps"剛剛阿銘訪問的Tomcat默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT裏。unpackWARs="true"自動解壓WAR包。這個包裏面包含了網站運行的文件,配置,代碼,和數據庫先關的圖片等。這個包需要放在webapp中。

docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,其中appBase和docBase可以一樣。在這一步操作過程中很多同學遇到過訪問404的問題,其實就是docBase沒有定義對。 appBase為應用存放目錄,通常是需要把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>
這裏我們沒有定義appBase,而是定義了一個docBase,docBase他是定義了一個目錄。目錄中有網站需要的東西和數據庫相關的東西。它和appBase二選一。如果兩個同時存在,我們可以寫空一個。

下面我們通過部署一個java的應用來體會appBase和docBase目錄的作用
首先下載zrlog的war包 wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
然後將下載好的包移動到/usr/local/tomcat/webapps/,因為他可以自動解壓war包。所以我們不用去解壓它。
cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
這裏多出了兩個文件,一個是war包,一個是自動解壓完完後的zrlog。
然後將解壓完的文件改名
mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog

然後我們去瀏覽器訪問我們主機的ip,後面加上/zrlog,然後就會出現
技術分享圖片

進入mysql
創建zrlog數據庫 mysql> create database zrlog;
建立用戶 grant all on zelog. to ‘zrlog‘@127.0.0.1 identified by ‘19860127‘;
授權用戶 grant SELECT,UPDATE,INSERT on db1.
to ‘zrlog‘@‘127.0.0.1‘ identified by ‘19860127‘;
然後我們逐一填寫瀏覽器中的選項
最後完成
技術分享圖片

這樣,我們就搭建好了自己的博客。

我們現在訪問的時候,在域名的後面還是要加上目錄,這樣比較麻煩,我們可以通過設置,不讓它加上目錄直接用域名訪問。

編輯配置文件 vim /usr/local/tomcat/conf/server.xml
<Host name="www.llt.cn" appBase=""
unpackWARs= "true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/data/wwwroot/llt.cn/" debug="0" reloadable="true" crossContext="true"/>
</Host>
這時一臺虛擬主機,我們沒有配置appBase,而是配置了docBase,這是一個目錄,它裏面存放的是WAR包的目錄。我們可以將zelog也放到docBase去。
首先創建目錄 mkdir /data/wwwroot/llt.cn/
然後將mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/llt.cn/
然後綁定windows hosts,看是否能ping通虛擬主機的域名,c盤--windows--system32--drivers--etc--hosts(記事本打開)
然後重啟服務
這樣我們就可以直接通過域名訪問了。

我們需要註意的是,只有我們用WAR包的時候才要去配置appBase,並且要把unpacKWARs設置成true。

Tomcat日誌

ls /usr/local/tomcat/logs
其中catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關信息,也會記錄錯誤日誌。
其中catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。
host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。
localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶access字樣的為默認虛擬主機的錯誤日誌。
訪問日誌默認不會生成,需要在server.xml中配置一下。
在配置文件中
<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>裏面加入下面的配置(假如域名為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,當出現問題時,我們應該第一想到去查看它。

配置Tomcat監聽80端口, 配置Tomcat虛擬主機,Tomcat日誌