tomcat-web容器的介紹

Tomcat系統文檔


文檔描述

    主要了解Tomcat概念、作用、安裝、啓動及配置和部署應用程序。

二、Tomcat概念和作用

1、概念

       Tomcat是Apache 軟件基金會(ApacheSoftware Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。

 

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器。

 

Tomcat部分是Apache 服務器的擴展,但它是獨立運行的,所以當你運行tomcat 時,它實際上作爲一個與Apache獨立的進程單獨運行的,

當配置正確時,Apache 爲HTML頁面服務,而Tomcat實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態HTML的能力不如Apache服務器。目前Tomcat最新版本爲8.0。

 

 

2、特性

       開源,

免費

技術先進,支持最新的jsp和servlet技術

 

3、應用

在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

 

4、版本

Tomcat 目前最新版本爲8.0,7.0和6.0 也在常用中

Tomcat和servlet/JSP版本對應如下

 

Servlet/JSP____Apache Tomcat 版本。

---------------------------------------------

3.1/2.3____ 8.0.X[1]

3.0/2.2____ 7.0.X

2.5/2.1____ 6.0.X

 

 

三、安裝

3.1、windows安裝

3.1.1、工具準備

     官網下載JDK,和tomcat,這個參考3.2.1節點,選擇window版本 zip下載

 

3.1.2、工具準備

Tomcat解壓即可使用

JDK解壓即可使用,需要配置環境變量 JAVA_HOME 和PATH路徑

 

3.2、linux安裝

3.2.1、工具準備

需要JDK和tomcat安裝包 ,這裏都是使用最新安裝包

 

1、下載JDK

參考文檔:http://jingyan.baidu.com/article/e4511cf3e112ac2b845eaf8f.html

 

jdk-8u45-linux-x64.tar.gz

 

2、tomcat 8

http://tomcat.apache.org/

 

apache-tomcat-8.0.23.tar.gz

 

3.2.2、上傳JDK和Tomcat

在/usr/local目錄下,新增java和tomcat目錄。

/usr/local/java

/usr/local/tomcat

 

將安裝包分別上傳java和tomcat目錄下。

3.2.3、安裝JDK

來到JDK安裝包所在的目錄:

#cd /usr/local/java

1、解壓

#tar –zxvf jdk-8u45-linux-x64.tar.gz

生成JDK目錄:/usr/local/java/jdk1.8.0_45

# ./java –version

顯示jdk版本表示安裝成功

2、配置環境變量

# vi /etc/profile

 在最後添加變量設置

export JAVA_HOME=/usr/local/java/jdk1.7

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:

$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

 如圖:

 

立即生效:

# source /etc/profile

 

3.2.4、安裝Tomcat

來到安裝包所在的目錄:

#cd /usr/local/tomcat

#tar –zxvf apache-tomcat-8.0.23.tar.gz

生成目錄:apache-tomcat-8.0.23

 

3.2.5、啓動時指定JDK

若環境變量已經配置了JAVA_HOME並且在PATH路徑添加了JAVA_HOME則,tomcat啓動時默認調用這個。

 

若想指定的JDK來運行,需要如下配置

配置/usr/local/tomcat/bin/catalina.sh文件

#vi /usr/local/tomcat/apache-tomcat-8.0.23/bin/catalina.sh

編輯文件

添加 JAVA_HOME 和JRE_HOME


命令如下:

exportJAVA_HOME=/usr/local/java/jdk1.8.0_45

exportJRE_HOME=/usr/local/java/jdk1.8.0_45/jre

 

還推薦在setclasspath.sh文件開頭也添加上面配置

 

3.2.6、配置內置端口

本機安裝多個tomcat或者多個web容器時,則出現默認端口號被佔用,則需修改內置端口。

#cd /usr/local/tomcat/apache-tomcat-8.0.23/conf

編輯:server.xml文件,修改8080端口爲9090端口

重新服務

 

 

四、管理

1、啓動服務

進入目錄:

#cd /usr/local/tomcat/apache-tomcat-8.0.23/bin

啓動服務

# nohup ./startup.sh &

 

查看啓動進程如下:


 

打開網頁,輸入:http://192.168.188.26:9090/

表明tomat安裝成功。

 

2、停止服務

查找tomcat進程

# ps aux|grep tomcat

 

殺進程

Kill-9 17166

        

  

3、查看版本

#./version

 

4、設置管理密碼

管理頁面訪問:

http://192.168.188.26:9090/manager

初始使用時,提示輸入用戶和密碼

修改/conf/tomcat_users.xml文件

<tomcat-users>

 <role rolename="tomcat"/>

 <role rolename="role1"/>

 <user username="tomcat" password="tomcat"roles="tomcat"/>

 <user username="both" password="tomcat"roles="tomcat,role1"/>

 <user username="role1" password="tomcat"roles="role1"/>

</tomcat-users>

 

修改/conf/tomcat_users.xml文件

<tomcat-users>

 <role rolename="manager-gui"/>

 <role rolename="role1"/>

 <user username="zhenyun.su" password="daphne"roles="manager-gui"/>

 <user username="both" password="tomcat"roles="manager-gui,role1"/>

 <user username="role1" password="tomcat"roles="role1"/>

</tomcat-users>

 

重啓服務後,重新登入

 

管理員詳細介紹,請查看第五章節。

 

五、控制檯

http://192.168.188.26:9090/manager

如果需要輸入用戶密碼,請詳細看4節的設置管理密碼

5.1、功能

1、應用程序列表


2、部署應用程序

界面可以選擇上傳War file 文件,點擊deploy

 

2、服務狀態(server status)

六、配置

配置前先了解下tomcat的目錄結構。

6.1、目錄結構

5.1.4、目錄結構

目錄說明:

bin :各種執行命令,比如啓動腳本 startup.sh

conf:配置文件,比如server.xml 配置監聽端口,web.xml

lib   : 存放Tomcat運行需要的jar包

logs  : Tomcat運行的相關日誌文件,比如啓動時的日誌 catalina.log

temp :  Tomcat運行的臨時文件。

webapps: Web應用的發佈目錄,默認情況下把Web應用文件放於此目錄。

work: Tomcat的工作目錄,默認情況下把編譯JSP文件生成的servlet類文件放於此目錄下

 

6.2、配置

http://blog.csdn.net/gyming/article/details/36060843

 

1、JVM內存配置

編輯腳本:/bin/catalina.sh

新增配置如下:

JAVA_OPTS="-server -Xms256m -Xmx512m-XX:PermSize=64M -XX:MaxPermSize=128m

 

Windows下也是這樣來配置的。

 

參數解釋:

-server:一定要作爲第一個參數,在多個CPU時性能佳

-Xms:java Heap初始大小。 默認是物理內存的1/64。

-Xmx:java heap最大值。建議均設爲物理內存的一半。不可超過物理內存。

 

 

-XX:PermSize:設定內存的永久保存區初始大小,缺省值爲64M。(我用visualvm.exe查看的)

-XX:MaxPermSize:設定內存的永久保存區最大 大小,缺省值爲64M。(我用visualvm.exe查看的)

 

-XX:SurvivorRatio=2  :生還者池的大小,默認是2,如果垃圾回收變成了瓶頸,您可以嘗試定製生成池設置

 

-XX:NewSize: 新生成的池的初始大小。 缺省值爲2M。

-XX:MaxNewSize: 新生成的池的最大大小。   缺省值爲32M。

如果 JVM 的堆大小大於 1GB,則應該使用值:-XX:newSize=640m -XX:MaxNewSize=640m -XX:SurvivorRatio=16,或者將堆的總大小的 50% 到 60% 分配給新生成的池。調大新對象區,減少Full GC次數。

 

 

 

2、線程數配置

在tomcat配置文檔server.xml中的配置中,和連接數相關的參數有:

maxThreads:

Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創建的最大的線程數。默認值200。

acceptCount:

指定當任何能夠使用的處理請求的線程數都被使用時,能夠放到處理隊列中的請求數,超過這個數的請求將不予處理。默認值10。

minSpareThreads:

Tomcat初始化時創建的線程數。默認值4。

maxSpareThreads:

一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。默認值50。

enableLookups:

是否反查域名,默認值爲true。爲了提高處理能力,應配置爲false

connnectionTimeout:

網絡連接超時,默認值60000,單位:毫秒。配置爲0表示永不超時,這樣配置有隱患的。通常可配置爲30000毫秒。

maxKeepAliveRequests:

保持請求數量,默認值100。

bufferSize:

輸入流緩衝大小,默認值2048 bytes。

compression:

壓縮傳輸,取值on/off/force,默認值off。

其中和最大連接數相關的參數爲maxThreads和acceptCount。假如要加大併發連接數,應同時加大這兩個參數。web server允許的最大連接數還受制於操作系統的內核

 

參數配置,通常Windows是2000個左右,Linux是1000個左右。

3、tomcat中如何禁止和允許列目錄下的文檔

在{tomcat_home}/conf/web.xml中,把listings參數配置成false即可,如下:

<servlet>

...

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

...

</servlet>

4、tomcat中如何禁止和允許主機或IP地址訪問

<Host ...>

  ...

  <ValveclassName="org.apache.catalina.valves.RemoteHostValve"

        allow="*.mycompany.com,www.yourcompany.com"/>

  <ValveclassName="org.apache.catalina.valves.RemoteAddrValve"

         deny="192.168.1.*"/>

  ...

</Host>

 

七、部署應用程序

     部署的應用程序,請查看我的博文並下載項目源代碼:

http://blog.csdn.net/big2008bone/article/details/46723325

 

 

7.1、部署到本地安裝的tomcat

7.1.1、使用eclipse來自動部署

參考這邊文章即可:http://blog.csdn.net/lucklq/article/details/7621807

提示:

1、配置過程,需要單獨啓動Tomcat的服務。

2、web項目中指定tomcat 的lib必須和tomcat版本一致

3、重新run as 即可發佈程序到本地安裝目錄

 

部署後,產生的文件如下:

會自動備份conf下的配置文件,生成到新的目錄。

 

通過比較部署前和部署後的配置文件(server.xml,web.xml, context.xml),只有server.xml 發生變化。

多一個context節點。

docBase: 表示項目的跟目錄

path:表示項目的名稱,訪問路徑:http://localhost:8080/JSP_JavaBean_servlet

reloadable = true: 表示這個站點可以自動加載,代碼重新部署無需重啓服務。

source : 表示指定服務的名稱。

 

通過參考這些,我們也可以進行手工部署。

7.1.2、拷貝代碼手工部署

1、修改配置文件 server.xml

新增如下context節點

Workdir: 表示tomcat運行jsp或servlet後產生的java或class文件。

 

2、將JSP_JavaBean_servlet代碼拷貝到

E:\6_Java\6_webcontainer\apache-tomcat\apache-tomcat-8.0.21\webapps\目錄下

 

重新啓動服務。訪問:http://localhost:8080/JSP_JavaBean_servlet1/

 

7.1.3、使用war手工部署

將JSP_JavaBean_servlet.war拷貝到

apache-tomcat\apache-tomcat-8.0.21\webapps目錄下,若tomcat服務已經開了,war文件自動解壓,即可使用http://localhost:8080/JSP_JavaBean_servlet

 

若拷貝到其他目錄,則需要配置server.xml下,新增context節點,來指定目錄,請參考7.1.2,手工配置。

 

 

7.2、部署到遠程的tomcat

環境說明:

linux= centos 5.10 64 位

JDK = jdk1.8

Tomcat = tomcat 8.0v

Mysql = mysql5

提示:mysql和tomcat同一臺服務器

數據庫代碼部署:

(連接到mysql創建數據庫demo,及表user)

Createdatabase demo;

 

DROPTABLE IF EXISTS `user`;

CREATETABLE `user` (

  `id` int(10) unsigned NOT NULLAUTO_INCREMENT,

  `username` varchar(50) DEFAULT NULL,

  `password` varchar(50) DEFAULT NULL,

  `iphone` varchar(11) DEFAULT NULL,

  PRIMARY KEY (`id`)

)ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;

 

在部署代碼前,需要確認數據庫連接是否正常

 

7.2.1、拷貝代碼手工部署

1、配置server.xml


2、將代碼手工通過ftp上傳linux的tomcat安裝目錄的webapps路徑下

 

 

7.2.2、拷貝war手工部署

將JSP_JavaBean_servlet.war上傳到webapps目錄下

自動解壓

7.2.3、通過控制檯部署

登錄後臺:http://192.168.188.26:9090/manager

選擇文件,上傳本地war文件,然後點擊deploy即可部署

 

 

 

 

 

 

八、性能監控

       以後再補上

九、變更記錄&常見問題&參考資料

9.1、變更記錄

 

9.2、常見問題

1、訪問網頁報錯如下

[Fiddler] The connection to '192.168.188.26' failed. 
Error: ConnectionRefused (0x274d). 
System.Net.Sockets.SocketException 由於目標機器積極拒絕,無法連接

 

後天tomcat 服務訪問不通,可能原因tomcat服務掛掉

9.3、參考資料

參考博文:

http://blog.sina.com.cn/s/blog_6dae5a690100xgh3.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章