Tomcat在Linux上的安裝與配置

weixin_34127717發表於2015-08-21

Tomcat在Linux上的安裝與配置



    以下使用的Linux版本為: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本為tomcat-7.0.54.


1.下載JDK與Tomcat.
    jdk下載地址:
    http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
    tomcat下載地址:
    http://tomcat.apache.org/download-70.cgi


2.jdk安裝與配置.
    (1)jdk安裝
    rpm包:
    # rpm -ivh jdk-7u55-linux-x64.rpm


    tar.gz包:解壓縮
    # mkdir /usr/java
    # cd /usr/java
    # tar -zxvf /software/jdk-7u55-linux-x64.tar.gz
    生成連結以便版本升級
    # ln -s jdk1.7.0_55 latest
    # ln -s latest default


    (2)配置環境變數
    # vi /etc/profile
    export JAVA_HOME=/usr/java/default
    export JAVA_BIN=$JAVA_HOME/bin
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH


    使配置生效
    # source /etc/profile


    測試jdk.
    # java -version
    java version "1.7.0_55"
    Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)


3.Tomcat的安裝
    解壓縮
    # mkdir /usr/local/tomcat
    # cd /usr/local/tomcat
    # tar -zxvf /software/apache-tomcat-7.0.54.tar.gz
    生成連結以便版本升級
    # ln -s apache-tomcat-7.0.54 server


    啟動Tomcat
    # cd /usr/local/tomcat/server/bin
    # ./startup.sh
    Using CATALINA_BASE: /usr/local/tomcat/server
    Using CATALINA_HOME: /usr/local/tomcat/server
    Using CATALINA_TEMDIR: /usr/local/tomcat/server/temp
    Using JRE_HOME: /usr/java/default
    Using CLASS_PATH: /usr/local/tomcat/server/bin/bootstrap.jar:/usr/local/tomcat/server/bin/tomcat-juli.jar
    Tomcat started.


    測試Tomcat:
    開啟防火牆,使外部能訪問
    # /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    # service iptables save
    # service iptables restart
    或直接修改檔案/etc/sysconfig/iptables.
    # vi /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    # service iptables restart
    在瀏覽器輸入: http://192.168.16.133:8080
    如在本機可以輸入: http://localhost:8080
    出現tomcat的頁面表示安裝成功.


    停止Tomcat
    # ./shutdown.sh


4.配置web管理帳號
   修改檔案conf/tomcat-users.xml,在<tomcat-users>元素中新增帳號密碼,需要指定角色.
   # vi /usr/local/tomcat/server/conf/tomcat-users.xml
     <tomcat-users>
       <user name="admin" password="admin" roles="admin-gui,manager-gui" />
     </tomcat-users>


5.配置web訪問埠和設定UTF-8
   可以修改conf目錄下的檔案server.xml,修改Connector元素(Tomcat的預設埠是8080),需要重新啟動Tomcat服務生效.
   # vi /usr/local/tomcat/server/conf/server.xml
   <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"  URIEncoding="UTF-8" /> 

   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />


6.配置https安全連線(ssl加密連線)
   https連線需要用到數字證照與數字簽名(MD5演算法)
   網站https連線首先需要申請數字證照,配置加密聯結器,瀏覽器安裝證照.
   ·使用java的工具keytool產生數字證照
     # keytool -genkey -alias tomcat -keyalg RSA
     生成檔案.keystore
     注意:CN為主機名稱,本機可用localhost
   ·將檔案.keystore放到Tomcat伺服器的conf目錄下
     # cp .keystore /usr/local/tomcat/server/conf/
   ·修改conf/server.xml檔案,修改加密聯結器,新增keystoreFile與keystorePass
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/.keystore" keystorePass="123456"/>    
   ·重新啟動tomcat.瀏覽器輸入https://localhost:8443訪問,並安裝證照.


7.Tomcat的目錄結構
   ·bin     //存放Tomcat的命令指令碼檔案
   ·conf    //存放Tomcat伺服器的各種配置檔案,最主要是server.xml
   ·lib     //存放Tomcat伺服器支撐jar包
   ·logs    //存放日誌檔案
   ·temp    //存放臨時檔案
   ·webapps //web應用所在目錄,外界訪問web資源的存放目錄
   ·work    //Tomcat的工作目錄


8.web應用的目錄結構
   webapp                           -- web應用所在目錄
     |--- html, jsp, css, js檔案等  -- 這些檔案一般在web應用根目錄下,根目錄下的檔案外界可以直接訪問.
     |--- WEB-INF 目錄              -- java類、jar包、web配置檔案存在這個目錄下,外界無法直接訪問,由web伺服器負責呼叫.
           |--- classes 目錄        -- java類
           |--- lib 目錄            -- java類執行所需要的jar包
           |--- web.xml 檔案        -- web應用的配置檔案


9.虛擬主機的配置
   指定虛擬主機名,修改conf/server.xml,新增<host>元素.
   <host name="hostname.domainname" appBase="/webapps">
     <Context path="/webapp" docBase="/webapps/webapp"/>
   </host>
   例:
   <host name="www.163.com" appBase="/webapps">
   </host>
   <host name="mail.163.com" appBase="/mailapps">
   </host>
   須設定DNS解析(host檔案或DNS系統).




10.web應用和虛擬目錄的對映.
   可以修改xml配置檔案的<Context>元素來設定web應用和虛擬目錄的對映.
   ·conf/server.xml         //在<host>元素下新增<Context path="/webdir" docBase="/webappdir"/>,需要重新啟動Tomcat服務生效,不建議使用.
   ·conf/context.xml        //新增<Context>元素所有web應用有效.
   ·conf/[enginename]/[hostname]/context.xml.default  //[enginename]一般是Catalina,主機[hostname]的所有web應用有效.
   ·conf/[enginename]/[hostname]/   //在目錄下任意建一個檔案(副檔名xml),檔名即為虛擬目錄名.多級目錄使用#分割. <Context docBase="/webappdir"/>
                                     //預設值web應用目錄可以定義為ROOT.xml,新增<Context docBase="/webappdir"/>,需重新啟動Tomcat伺服器.
   ·META-INF/context.xml    //
   可以將web應用放在webapps目錄下讓Tomcat伺服器自動對映,適用開發環境,實際運用環境中不用自動對映。
   如沒有修改配置檔案,web應用目錄為ROOT時則為預設web應用。


11.web應用首頁(welcome file)的配置
   修改web應用的配置檔案: [webapp]/WEB-INF/web.xml
    <welcome-file-list>
       <welcome-file>index.html</welcome-file>
       <welcome-file>index.htm</welcome-file>
       <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

 


 

Tomcat6 Tomcat7對比測試

0摘要

本文首先簡述了Tomcat7的新特性和增強功能。然後對比tomcat6做了效能測試,測試結果表明,tomcat7的在效能上沒有明顯的提升,而主要貢獻在於Servlet 3.0,記憶體檢測洩露和增強的安全特性。

1 Tomcat7的特性

目前tomcat7已經發布到第34個版本(tomcat7.0.34),而tomcat6現在的版本是6.0.36,所以就bug修改來說,應該算是比較穩定了。

Tomcat7新特性:

1. 使用隨機數去防止跨站指令碼攻擊;

2. 改變了安全認證中的jessionid的機制,防止session攻擊;

3. 記憶體洩露的偵測和防止;

4. 在war檔案外使用別名去儲存靜態內容;

Tomcat7的增強功能:

5 對Servlet 3.0,JSP 2.2和JSP-EL 2.2的支援;

6 更容易將Tomcat內嵌到應用去中去,比如JBoss;

7 非同步日誌記;

根據Mark Thomas,Tomcat 7委員會的經理的說法,Tomcat 7最顯著的三個特徵是Servlet 3.0,記憶體檢測洩露和增強的安全特性。不過從變更中沒有看到Tomcat7在效能方面的提升,下面測試一下效能。

2 效能測試

2.1 處理靜態請求

2.1.1Tomcat6處理靜態請求

命令:ab -n 40000 -c 2000 http://172.7.9.201:8080/about.html

Timeper request: 118.038 [ms] (mean)

Timeper request: 115.213 [ms] (mean)

Timeper request: 118.873 [ms] (mean)

Timeper request: 125.233 [ms] (mean)

Timeper request: 118.147 [ms] (mean)

平均 119.101 [ms] (mean)

2.1.2Tomcat7處理靜態請求

命令:ab -n 40000 -c 2000 http://172.7.9.201:8080/about.html

Timeper request: 116.968 [ms] (mean)

Timeper request: 119.298 [ms] (mean)

Timeper request: 120.927 [ms] (mean)

Timeper request: 119.914 [ms] (mean)

Timeper request: 123.141 [ms] (mean)

平均 120.050 [ms] (mean)

2.2 請求動態請求

由於ApacheBench或者Webbench都不支援URL中存在類似loginAction!login.action字串,而在視訊去中action都是類似拼接的,這裡只能用jmeter測試向Tomcat6/7傳送驗證登陸資訊請求,故結果資料只做本節內對比,不與上節對比。

2.2.1Tomca6處理動態資訊

700併發 迴圈傳送5次

http://172.7.9.201:8080/loginAction!login.action?indexcode=abc&password=e10adc3949ba59abbe56e057f20f883e

平均3218.000 [ms] (mean)

2.2.2Tomcat7處理動態資訊

700併發 迴圈傳送5次

http://172.7.9.201:8080/loginAction!login.action?indexcode=abc&password=e10adc3949ba59abbe56e057f20f883e

平均3371.333 [ms] (mean)

2.3 效能測試小結

從處理靜態請求看,tomcat6平均119.101 [ms],tomcat7平均120.050 [ms],Tomcat7響應效能沒有提升。

從處理動態請求看,tomcat6平均3218.000 [ms],tomcat7平均3371.333 [ms]也沒有提升。

3 總結

本文首先簡述了Tomcat7的新特性和增強功能。然後對比tomcat6做了效能測試,測試結果表明,tomcat7的在效能上沒有明顯的提升,而主要貢獻在於Servlet 3.0,記憶體檢測洩露和增強的安全特性。

如何聯絡我:【萬里虎】www.bravetiger.cn 【QQ】3396726884 (諮詢問題100元起,幫助解決問題500元起) 【部落格】http://www.cnblogs.com/kenshinobiy/

相關文章