58.配置tomcat監聽80 虛擬主機 日誌

16.4 配置Tomcat監聽80端口php

16.5/16.6/16.7 配置Tomcat虛擬主機(有如何建立一個zrlog博客)html

16.8 Tomcat日誌java

擴展mysql

邱李的tomcat文檔 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37linux

JAR、WAR包區別 http://blog.csdn.net/lishehe/article/details/41607725nginx

tomcat常見配置彙總 http://blog.sina.com.cn/s/blog_4ab26bdd0100gwpk.htmlweb

resin安裝 http://fangniuwa.blog.51cto.com/10209030/1763488/sql

1 tomcat 單機多實例數據庫

http://www.ttlsa.com/tomcat/config-multi-tomcat-instance/apache

2 tomcat的jvm設置和鏈接數設置

http://www.cnblogs.com/bluestorm/archive/2013/04/23/3037392.html

3 jmx監控tomcat

http://blog.csdn.net/l1028386804/article/details/51547408

4 jvm性能調優監控工具jps/jstack/jmap/jhat/jstat

http://blog.csdn.net/wisgood/article/details/25343845 

http://guafei.iteye.com/blog/1815222

5 gvm gc 相關

http://www.cnblogs.com/Mandylover/p/5208055.html

http://blog.csdn.net/yohoph/article/details/42041729

tomcat內存溢出

https://blog.csdn.net/ye1992/article/details/9344807

 

 

 

 

16.4 配置Tomcat監聽80端口:

 

 

 

 

tomcat監聽的是8080。

那麼若是想直接訪問,不想在瀏覽器裏還要輸入8080。也就是直接在瀏覽器裏直接輸一個IP或者域名訪問的是80端口(80端口是能夠省略掉的。其餘的就要帶上,很不方便)。

因此tomcat也是能夠自定義端口的,也就是說把8080改爲80的。

如下:

~1.vim /usr/local/tomcat/conf/server.xml tomcat的配置文件

搜索8080

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

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

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

~4.若是啓動了nginx,須要將nginx停掉(etc/init.d/nginx stop)。而後再重啓tomcat

 

 

實例:

[root@axinlinux-01 src]# vim /usr/local/tomcat/conf/server.xml vimtomcat的配置文件

<Connector port="80" protocol="HTTP/1.1" 將8080改成80

connectionTimeout="20000"

redirectPort="8443" />

[root@axinlinux-01 src]# /usr/local/tomcat/bin/shutdown.sh

更改完確定要重啓服務。不支持restart。先shutdown,再start

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@axinlinux-01 src]# /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.

[root@axinlinux-01 src]# ps aux |grep java 查看進程是有的

root 3125 6.6 6.2 2980484 116476 pts/0 Sl 14:50 0:08 /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 -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 3177 0.0 0.0 112720 980 pts/0 S+ 14:52 0:00 grep --color=auto java

[root@axinlinux-01 src]# netstat -lntp |grep java 可是80端口尚未出現

tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3125/java

tcp6 0 0 :::8009 :::* LISTEN 3125/java

[root@axinlinux-01 src]# netstat -lntp |grep 80 搜一下80。會發現80是nginx

當nginx監聽了80端口,tomcat就不能再監聽80端口。這叫作端口占用

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

tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3125/java

tcp6 0 0 :::8009 :::* LISTEN 3125/java

[root@axinlinux-01 src]# /etc/init.d/nginx stop 因此先停掉nginx

[root@axinlinux-01 src]# /usr/local/tomcat/bin/shutdown.sh 再來重啓tomcat

[root@axinlinux-01 src]# /usr/local/tomcat/bin/startup.sh

[root@axinlinux-01 src]# netstat -lntp |grep java 會發現tomcat已經監聽了80

tcp6 0 0 :::80 :::* LISTEN 3280/java

tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3280/java

tcp6 0 0 :::8009 :::* LISTEN 3280/java

再來用瀏覽器直接訪問192.168.208.128

(須要注意的是,8005啓動會比較慢,在8005尚未啓動的時候,訪問的話會比較慢)

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

16.5/16.6/16.7 配置Tomcat虛擬主機:

 

 

 

以前的Apache或者是nginx,他們都屬於webserver,都支持虛擬主機配置文件。

虛擬主機配置文件就是說一臺服務器上或者說一個webserver能夠支持一個IP下面能夠訪問多個域名,每個域名錶明着一個網站,因此咱們能夠配置多個網站。那麼每個網站的配置文件都是一個虛擬主機。

tomcat一樣也存在這樣的概念

~1.

vim /usr/local/tomcat/conf/server.xml 看一下tomcat的配置文件

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

appBase定義應用的目錄,Java的應用一般是一個war的壓縮包,你只須要將war的壓縮包放到appBase目錄下面便可。剛剛阿銘訪問的Tomcat默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT裏。

docBase,這個參數用來定義網站的文件存放路徑,若是不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄爲主了,其中appBase和docBase能夠同樣。在這一步操做過程當中不少同窗遇到過訪問404的問題,其實就是docBase沒有定義對。

appBase爲應用存放目錄,一般是須要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄

實例~1.中有更詳細的解釋

~2.

增長虛擬主機,編輯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>

 

~3.

下面咱們經過部署一個java的應用來體會appBase和docBase目錄的做用

咱們下載的項目是java應用是zrlog。

咱們搭建php的博客能夠用wordpress,博客就是記錄文章的,那麼這是php的博客。

那麼關於java的博客,就是zrlog(固然只是其中的一個)。

1.下載zrlog wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

2.mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/

3.mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog

4.create database zrlog; 建立zrlog這個用戶

grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'wangxin789';

建立zrlog庫(庫能夠不加單引號),指定他的IP和密碼

4.瀏覽器訪問 ip:8080/zrlog

5.mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

創建doc目錄,使博客直接輸入IP便可訪問

 

 

實例:

~1.

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

tomcat的配置文件格式和Apache nginx不太同樣,是xml這種形式。那麼這部分Host就表示一個虛擬主機。如下,解釋這四項:

域名就叫Host name=「localhost」

appBase="webapps"的意思是,只他的應用項目在哪裏。好比搭建了一個tomcat,要想用tomcat去跑一個網站,那要把網站放在那裏呢?:

首先他的應用不能是傳統意義上的目錄(好比nginx訪問網站的時候,要給他指定一個目錄,這個目錄裏存放着php的文件或者是HTML的文件,而後再去訪問)。那tomcat就不太同樣,須要提供一個WAR的包(就是一個文件一個壓縮包,這個壓縮包裏面放着運行網站的文件包括配置、gsp的代碼,還有一些和數據庫相關的,像圖片等等),須要打包WAR這樣的文件。那麼這個文件就要放在"webapps"裏面

unpackWARs="true"的意思是,是否自動的解壓WAR這個包,"true"就是自動的解壓。也就是說,把WAR包放在webapps裏面,就自動的解壓了。

autoDeploy="true"若是此項設爲true,表示Tomcat服務處於運行狀態時,可以監測appBase下的文件,若是有新有web應用加入進來,會自運發佈這個WEB應用

docbase=「」固然若是不想定義WAR包,還能夠單獨指定一個目錄,這個目錄裏存放了一些gsp的文件。也就是說給他提供的不是一個WAR包,而是一個目錄,這個目錄裏有gsp的程序。那麼若是這樣的話,就須要加上docbase來定義。至關於不用WAR包,而是解壓完了以後的

appbase與docbase二選一。若是同時存在其中一個爲空

<!-- SingleSignOn valve, share authentication between web applications

Documentation at: /docs/config/valve.html -->

<!--

<Valve className="org.apache.catalina.authenticator.SingleSignOn" />

-->

 

<!-- Access log processes all example.

Documentation at: /docs/config/valve.html

Note: 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 &quot;%r&quot; %s %b" />

<Valve 這一部分是配置日誌的

</Host>

~2.

[root@axinlinux-01 src]# vim /usr/local/tomcat/conf/server.xml

</Host> 在第一個Host對應的後面的那個Host。也就是這一行下面加入一個咱們自定義的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相應的爲空

~3.

[root@axinlinux-01 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

[root@axinlinux-01 src]# du -sh zrlog-1.7.1-baaecb9-release.war

6.8M zrlog-1.7.1-baaecb9-release.war

[root@axinlinux-01 src]# ls /usr/local/tomcat/webapps/ appbase默認的路徑實在這個路徑下

docs examples host-manager manager ROOT 默認是這5個目錄

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

能夠先作一個實驗,咱們把下載的這個WAR包,cp到appbase的默認路徑下

[root@axinlinux-01 src]# ls /usr/local/tomcat/webapps/ 再來看,發現這個WAR包自動的解壓了。就是咱們剛纔說的unpackWARs="true"定義的,自動的解壓了

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

此時要注意,若是刪掉這個WAR包,他自動解壓的這個目錄也會一併刪掉

[root@axinlinux-01 src]# cd /usr/local/tomcat/webapps/

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

而後,咱們來安裝他。用瀏覽器來安裝,輸入http://192.168.208.128/zrlog/,會跳出安裝嚮導:

[root@axinlinux-01 webapps]# ps aux |grep mysql 首先檢查mysql是否啓動

[root@axinlinux-01 webapps]# mysql -uroot -pwangxin789 進入mysql

MySQL [(none)]> create database zrlog; 建立zrlog這個用戶

Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'wangxin789';

建立zrlog庫(庫能夠不加單引號),指定他的IP和密碼

Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> quit 退出

Bye

[root@axinlinux-01 webapps]# mysql -uzrlog -h127.0.0.7 -pwangxin789 再次登陸,檢查建立的對不對

MySQL [(none)]> show databases; 看一下是否是有zrlog

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

| Database |

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

| information_schema |

| test |

| zrlog |

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

再回到瀏覽器上,輸入咱們剛纔mysql設置的用戶密碼:

完成,點擊查看

能夠先寫個帖子

寫完,點擊保存

再用瀏覽器查看一下http://192.168.208.128/zrlog/

就有了咱們剛寫的帖子

 

 

可是,咱們訪問192.168.208.128/zrlog才能訪問到博客。比較麻煩,咱們能夠設置一下,直接訪問域名就能夠到博客:

咱們設置了docBase="/data/wwwroot/123.cn/。先建一個123.cn的目錄

[root@axinlinux-01 ~]# mkdir /data/wwwroot/123.cn

[root@axinlinux-01 ~]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

再在windows上設置www.123.cn的housts,讓www.123.cn訪問本機IP

[root@axinlinux-01 ~]# /usr/local/tomcat/bin/shutdown.sh 重啓一下

[root@axinlinux-01 ~]# /usr/local/tomcat/bin/startup.sh

[root@axinlinux-01 ~]# ps aux |grep java 查看是否起來

[root@axinlinux-01 ~]# netstat -lntp |grep java 查看端口。等到8005起來才能夠

tcp6 0 0 :::80 :::* LISTEN 6185/java

tcp6 0 0 127.0.0.1:41206 :::* LISTEN 6205/java

tcp6 0 0 127.0.0.1:21206 :::* LISTEN 6205/java

tcp6 0 0 127.0.0.1:8005 :::* LISTEN 6185/java

tcp6 0 0 127.0.0.1:51206 :::* LISTEN 6205/java

tcp6 0 0 :::8009 :::* LISTEN 6185/java

再回到瀏覽器上,直接www.123.cn。就能夠了,以下圖:

總結一下:

一開始咱們是把zrlog放在appbase目錄下,而且是讓他自動解壓的。然後咱們又把解壓完的目錄放到了docbase目錄下,能夠直接訪問。

再來看比對一下配置文件:

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

appBase="webapps"這個其實是一個路徑,是一個相對路徑,就是咱們/usr/local/tomcat/webapps的這個webapps,也就是說直接寫一個webapps,就直接省略掉了前面的/usr/local/tomcat/(好比咱們寫一個conf,就表示的/usr/local/tomcat/conf)

當咱們使用WAR包的時候,才須要把WAR包放到appbase裏面,並讓他自動解壓

若是訪問的網站他就是一個目錄,就要把涉及到這個文件的全部文件都放到docbase裏面

簡單講,appbase是放WAR包的,docbase是放網站程序的

知識點:

當咱們訪問的時候若是遇到404的問題:

除了考慮appbase和docbase。還要考慮apabase路徑涉及到一個默認的目錄,就是root。就是webapps下有一個root,這個root是默認的,也就說咱們訪問一個圖片等靜態文件就是在root下的。若是咱們自定義一個appbase,那他的路徑下也應該要有一個root目錄,把圖片等靜態文件放到root目錄下才能正常訪問

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

16.8 Tomcat日誌:

 

 

~1.

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字樣的爲默認虛擬主機的錯誤日誌。

~2.

訪問日誌默認不會生成,須要在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 &quot;%r&quot; %s %b" />

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

相關文章
相關標籤/搜索