1. 程式人生 > >2018-07-16筆記(tomcat 配置)

2018-07-16筆記(tomcat 配置)

openjdk cross 查找 name temp 之間 360doc apache www

16.1 Tomcat介紹

1、Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發而成。
2、Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。
3、java程序寫的網站用Tomcat+JDK來運行,Tomcat是一個中間件,真正起作用的,解析Java腳本的是JDK。JDK(Java development kit)是整個Java的核心,它包含了Java運行環境和一堆Java相關的工具以及Java基礎庫。

4、最主流的JDK是由sun公司發布的JDK,除此之外,IBM公司也有發布JDK,centos上也可以使用yum安裝openjdk。

16.2 安裝jdk

jdk目前版本1.6 1.7 1.8,通常說的6、7、8版本對應的就是1.6、1.7、1.8
我們用1.8版本
1.首先去jdk官網下載一個jdk包
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
技術分享圖片
先同意許可才能下載,選擇對應的版本下載即可,先下載到windows機器上,這裏因為用的是centos7的系統所以選擇下載64位tar.gz的包
下載完成用xshell自帶的sftp工具上傳到centos7的/usr/local/src/目錄下

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
總用量 912764
-rw-r--r--  1 root  root  185646832 7月  18 09:52 jdk-8u181-linux-x64.tar.gz

解壓並移動到對應目錄重命名即可,不用安裝

[root@localhost src]# tar zxf jdk-8u181-linux-x64.tar.gz 
[root@localhost src]# mv jdk1.8.0_181/ /usr/local/jdk1.8                 #把解壓完的目錄移動到/usr/local/下並改名為jdk1.8

編輯全局環境變量並使其生效

[root@localhost src]# vi /etc/profile                       #在最後面添加以下幾行,對應的目錄改成jdk所有的目錄即可
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
:wq保存配置
[root@localhost src]# source /etc/profile       #刷新配置

測試有沒安裝成功

[root@localhost src]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

#若該命令執行成功,且執行結果和安裝信息一致,說明配置成功。
#如果出現open jdk 搜一下 rpm -qa |grep open jdk,可能是系統安裝了open jdk,刪除即可

16.3 安裝Tomcat

下載對應的tomcat包,http://apache.fayea.com/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
這裏提供的下載地址有可能會失效
我們把tomcat下載到/usr/local/src/目錄下,並解壓

[root@localhost src]# wget http://apache.fayea.com/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
[root@localhost src]# tar zxf apache-tomcat-8.5.32.tar.gz

解壓完後把目錄移動到/usr/local/下並改名為tomcat

[root@localhost src]# mv apache-tomcat-8.5.32 /usr/local/tomcat

用tomcat自帶的腳本啟動

[root@localhost 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.

這裏可以看到輸出一些信息,使用的環境變量,就是剛才我們配置的
查看進程和端口,進程名為java

[root@localhost src]# ps aux |grep java
root       1154  3.0  7.9 2294184 79476 pts/0   Sl   10:11   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 -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -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       1201  0.0  0.0 112720   972 pts/0    D+   10:13   0:00 grep --color=auto java
[root@localhost src]# netstat -lnp|grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      1154/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1154/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1154/java  

三個端口
端口8080:提供web服務的
端口8005:管理端口
端口8009:第三方服務調用端口(如:httpd和Tomcat結合時會用到)
註意:8005端口有時候會啟動的比較慢,起來後頁面加載就很快了
防火墻放行對應的tomcat端口或者直接關閉,用瀏覽器訪問頁面是否正常,輸入IP加端口8080,這裏為192.168.66.131:8080
技術分享圖片

可以看到已經正常訪問,說明tomcat正常
關閉Tomcat,同樣是用tomcat自帶的腳本關閉:

[root@localhost  src]# /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

註意:tomcat是不支持restart的,有時候可能會遇到8005端口沒起來,無法關閉tomcat的現象,可以使用killall命令把所有java進程殺死

16.4 配置Tomcat監聽80端口

修改tomcat配置文件server.xml ,這裏我的路徑為/usr/local/tomcat/conf/server.xml,可以修改默認的監聽的web頁面的端口,這裏我們把8080改成80,註意80端口是系統保留的端口,必須使用root用戶才能綁定

[root@localhost src]# vi /usr/local/tomcat/conf/server.xml             #搜索關鍵字8080,找到下面的內容,並把8080,改成80
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改完後變成

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

技術分享圖片
:wq保存配置後,關閉tomcat,並重新啟動,使用生效

[root@localhost src]# /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@localhost 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.

查看java監聽的端口是否變成80,有時候可能會遇到80端口給占用的情況,把占用的進程關閉即可

[root@localhost src]# netstat -lnp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      1283/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1283/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1283/java  

使用瀏覽器直接訪問,可以看到直接輸入ip即可訪問了
技術分享圖片

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

在配置文件server.xml中搜索“Host”找到虛擬主機配置參數

    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- 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 "%r" %s %b" />

      </Host>

這裏一個Host段表示一個虛擬主機配置,其中name用來定義域名,appBase用來存放java應用程序的目錄,應用程序通常為.war的包,unpackWARs定義是否自動解壓war包
#appbase是定義Tomcat的應用(war文件)存放位置
#如果未使用該參數定義其應用,可以使用docbase來指定應用存放目錄
#當這兩個參數同時存在時,需要將其中一個寫為空!!!!!!
我們可以模擬新增一個虛擬主機配置,在之前的虛擬主機</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,就是網站存放的目錄
下面我們用實例來應用這個虛擬主機配置
首先先下載用java開發的博客程序zrlog,下載地址可能會失效,請自行查找下載

[root@localhost logs]# cd /usr/local/src/
[root@cham002 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@localhost src]# ll
總用量 919720
-rw-r--r--  1 root  root    7122027 1月  15 2018 zrlog-1.7.1-baaecb9-release.war

註意:.war文件可以在windows機器用解壓軟件解壓,也可以放到tomcat的webapps目錄,讓它自動解包,這裏放到webapps目錄下

[root@localhost src]# cp /usr/local/src/zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@localhost src]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ll
總用量 6960
drwxr-x--- 14 root root    4096 7月  18 10:08 docs
drwxr-x---  6 root root      83 7月  18 10:08 examples
drwxr-x---  5 root root      87 7月  18 10:08 host-manager
drwxr-x---  5 root root     103 7月  18 10:08 manager
drwxr-x---  3 root root     306 7月  18 10:08 ROOT
drwxr-x---  9 root root     126 7月  18 11:14 zrlog-1.7.1-baaecb9-release
-rw-r--r--  1 root root 7122027 7月  18 11:14 zrlog-1.7.1-baaecb9-release.war

可以看到已經自動解包了
這裏需要註意的是,當把war包刪除的時候,對應的目錄也會刪除,當把目錄刪除或改名的時候,war包存在,還會自動解壓成對應的目錄
這裏可以直接ip加博客目錄名字進行訪問,
技術分享圖片
因為這樣訪問後面還要加目錄的名字,比較麻煩,我們來應用下剛才我們新加的虛擬主機虛擬文件

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

把自動解壓出來的目錄zrlog-1.7.1-baaecb9-release下所有東西放到/data/wwwroot/123.cn/ 下,也就是剛才我們定義的虛擬主機docBase的目錄

[root@localhost webapps]# mkdir -p /data/wwwroot/123.cn/ 
[root@localhost webapps]# cp -r zrlog-1.7.1-baaecb9-release/* /data/wwwroot/123.cn/

註意:這裏我們沒有修改配置文件,只是復制文件到網站目錄下,所以沒有重啟tomcat服務,如果修改了配置文件,記得重啟tomcat使其生效

[root@localhost src]# /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@localhost 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.

因為定義了域名www.123.cn,所以還要在windows機器上修改對應的hosts,把www.123.cn指定到對應的機器上
技術分享圖片
用瀏覽器進行訪問,直接輸入域名www.123.cn
技術分享圖片
可以看到也是正常訪問的
下面進入到mysql裏面創建數據庫並授權

mysql> create database zrlog;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zrlog.* to ‘zrlog‘@‘%‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

把這些信息寫入到剛才的zrlog安裝向導頁面裏
技術分享圖片
根據提示完成後面的信息即可完成zrlog的安裝
技術分享圖片

16.8 Tomcat日誌

tomcat日誌默認是放在tomcat安裝目錄下的 logs目錄下

[root@localhost src]# cd /usr/local/tomcat/logs/
[root@localhost logs]# ll
總用量 40
-rw-r----- 1 root root 13993 7月  18 10:39 catalina.2018-07-18.log
-rw-r----- 1 root root 13993 7月  18 10:39 catalina.out
-rw-r----- 1 root root     0 7月  18 10:11 host-manager.2018-07-18.log
-rw-r----- 1 root root  1206 7月  18 10:39 localhost.2018-07-18.log
-rw-r----- 1 root root  1565 7月  18 10:42 localhost_access_log.2018-07-18.txt
-rw-r----- 1 root root     0 7月  18 10:11 manager.2018-07-18.log

說明:

catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關信息,也會記錄錯誤日誌。
catalina.2018-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。
host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。
localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶access字樣的為默認虛擬主機的錯誤日誌。
訪問日誌默認不會生成,需要在server.xml中配置一下。
配置訪問日誌
具體方法是在對應虛擬主機的<Host></Host>裏面加入下面的配置(以域名www123.cn為例):

   <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"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="www.123.cn_access" suffix=".log"
               pattern="%h %l %u %t "%r" %s %b" />
    </Host>

核心參數:<Valve/> 說明:
prefix定義訪問日誌的前綴;
suffix定義日誌的後綴;
pattern定義日誌格式。
新增加的虛擬主機默認並不會生成類似默認虛擬主機的那個localhost.日期.log日誌,錯誤日誌會統一記錄到catalina.out中。關於Tomcat日誌,你最需要關註catalina.out,當出現問題時,我們應該第一想到去查看它。

擴展:
java容器比較 http://my.oschina.net/diedai/blog/271367
http://www.360doc.com/content/11/0618/21/16915_127901371.shtml
j2ee、j2se、ejb、javabean、serverlet、jsp之間關系 http://bbs.csdn.net/topics/50015576
tomcat server.xml配置詳解 http://blog.csdn.net/yuanxuegui2008/article/details/6056754
tomcat常用數據庫連接的方法 http://wjw7702.blog.51cto.com/5210820/1109263
JAR、WAR包區別 http://blog.csdn.net/lishehe/article/details/41607725
tomcat常見配置匯總 http://blog.sina.com.cn/s/blog_4ab26bdd0100gwpk.html
resin安裝 http://fangniuwa.blog.51cto.com/10209030/1763488/
1 tomcat 單機多實例
http://www.ttlsa.com/tomcat/config-multi-tomcat-instance/
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

2018-07-16筆記(tomcat 配置)