Tomcat簡單的使用和配置

   Tomcat簡介 

   Tomcat主要由servlet和jsp組成,是精簡版的 JAVA EE;servlet是服務器端的一個容器,當用戶請求應用程序的時候,servlet接收客戶端的請求,並把的請求的類文件或源文件在虛擬機中運行一次,把運行的結果封裝成html語言,返回給用戶.so,servlet需要有java開發環境(JDK).但是servlet有個原生性的缺陷,就是所有的html語言都要硬編碼進java語言中.這就催生了jsp,jsp也是一個java類,jsp在前端入口處,他可以識別html語言中嵌入的jsp代碼,從而把jsp程序交給後端的servlet處理,而html語言則不原封不懂的顯示.而在jsp中執行這類操作的工具叫做jsper.

  Apache早期也在研究可以運行jsp的JAVA EE Application Servers,叫做catanila,後來sun公司把自己的研究JAVA EE Application Servers無償捐獻給了Apache,Apache命名爲Tomcat,所以現在的Tomcat中可以見到很多catanila的身影


1.首先要安裝JDK,java的運行環境

  1: rpm -ivh jdk-7u9-linux-x64.rpm 
  2: rpm -ql jdk
2.導出java的環境變量  
  1: vim /etc/profile.d/java.sh
  2: export JAVA_HOME=/usr/java/latest
  3: export PATH=$JAVA_HOME/bin:$PATH
  4:  . /etc/profile.d/java.sh           #重讀配置文件
  5: java -version 驗證環境變量是否配置成功
3.安裝配置tomcat,建議把tomcat的所有文件改成普通用戶的權限,使用普通用戶運行

  1: tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local
  2: ln -sv apache-tomcat-7.0.42/ tomcat
  3: vim /usr/local/tomcat/conf/server.xml:重要的配置文件
  4: /usr/local/tomcat/temp/  :編譯後的jsp文件
  5: /usr/local/tomcat/webapps/ : 默認網頁文件
  6: /usr/local/tomcat/bin : 一些可執行腳本
4.導出tomcat的環境變量
  1: vim /etc/profile.d/tomcat.sh
  2: export CATALINA_HOME=/usr/local/tomcat
  3: export PATH=$CATALINA_HOME/bin:$PATH
  4: . /etc/profile.d/tomcat.sh
  5: catalina.sh version  : 運行此命令,如果成功則表示導出環境變量成功

5.啓動查看tomcat

  1: catalina.sh configtest 測試語法是否有誤
  2: catalina.sh start | stop停止
  3:  ss -tpnl
  4:  jps  顯示主機運行的java程序及程序的id號,如果顯示Bootstrap說明運行成功
6.訪問IP:8080

6c408652-471a-420b-bf2d-eaeb5315bd09

7.查看tomcat的配置文件

 

  1: vim /usr/local/tomcat/conf/server.xml
  2: 
  3:     <server>--------------------頂級組件,最外層,一個運行在JVM的tomcat實例,以線程運行,一個進程多個線程
  4:     <service>-------------------頂級組件,容器類組件,服務,將連接器關聯至引擎的.一個service只能有一個引擎,可以有多個連接器
  5:     <connector />---------------連接器組件,接受用戶請求至tomcat,監聽套接字的,可定義多個
  6:     <engine >-------------------容器類組件,核心組件,處理connector接受的請求,解析編譯處理這些請求,一般叫catalina引擎,可以有多個,一個實現一組服務,一個引擎可以有多個連接器,如下圖
  7:     <Realm>---------------------可以用於任何容器類的組件中,關聯一個用戶認證庫,實現認證和授權
  8:      <Realm>--------------------Realm中可以簽到Realm
  9:      </Realm>-------------------
 10:     </Realm>--------------------
 11:     <host>----------------------容器類組件,定義虛擬主機的
 12:       <context>-----------------容器類組件,有點類似alias,定義一個應用程序的部署,最內存的容器,一個context代表一個web程序,配置context的主要目的是指定對應webapp的根目錄
 13:       </context>----------------
 14:     </host>---------------------
 15:     <host>----------------------可以有多個,一個host就一個虛擬主機,一般只支持基於主機名的虛擬主機
 16:       <value />-----------------嵌套類組件,閥門,攔截請求的,並將其轉至對應的webapp之前進行某種操作:如記錄日誌 access log value(記錄日誌) remote address filter value(基於ip做訪問控制) 可以用於任何容器中
 17:     </host>---------------------
 18:     </engine>-------------------
 19:     </service>------------------
 20:     </server>-------------------
3527718d-aa00-4889-a403-19de636adb9a

大致圖如下

243449812

上圖,三個容器類的組件:engine,host,context

8.修改和增加tomcat監聽的端口

  1: vim /usr/local/tomcat/conf/server.xml
  2: 
  3: <Connector port="80" protocol="HTTP/1.1"
  4:                connectionTimeout="20000"
  5:                redirectPort="8443" />
  6:     <Connector port="8080" protocol="HTTP/1.1"
  7:                connectionTimeout="20000"
  8:                redirectPort="8443" />
  9:  redirectPort="8443" ------如果是https就轉到8443端口
9.爲tomcat提供Sysv服務腳本

vim /etc/rc.d/init.d/tomcat

chkconfig --add tomcat

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

# JAVA_OPTS='-Xms64m -Xmx128m'    #堆的最小和最大使用空間,在服務器這值通常很大,幾十G

JAVA_HOME=/usr/java/lastest

CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME CATALINA_HOME

case $1 in

start)

  exec $CATALINA_HOME/bin/catalina.sh start ;;

stop)

  exec $CATALINA_HOME/bin/catalina.sh stop;;

restart)

  $CATALINA_HOME/bin/catalina.sh stop  

  sleep 2

  exec $CATALINA_HOME/bin/catalina.sh start ;;

*)

  echo "Usage: `basename $0` {start|stop|restart}"

  exit 1

  ;;

esac

exec 在當前shell中執行腳本,所以不會在腳本中繼續往下運行了

10.Connector連接器的可選參數

  1:  <Connector port="80" address="127.0.0.1" maxThreads="200" connectonTimeout="6000"  protocol="HTTP/1.1"
  2:                connectionTimeout="20000"
  3:                redirectPort="8443" />
  4: <Connector port="8443"
  5:     maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  6:     enableLookups="false" acceptCount="100" debug="0" scheme="https" secure="true"
  7:     clientAuth="false" sslProtocol="TLS" />
  8: 
以後自己定義的時候可能還要加上證書的路徑

1) address:指定連接器監聽的地址,默認爲所有地址,即0.0.0.0;

2) maxThreads:支持的最大併發連接數,默認爲200,很重要的一個參數;

3) port:監聽的端口,默認爲0;

4) protocol:連接器使用的協議,默認爲HTTP/1.1,定義AJP協議時通常爲AJP/1.3;

5) redirectPort:如果某連接器支持的協議是HTTP,當接收客戶端發來的HTTPS請求時,則轉發至此屬性定義的端口;

6) connectionTimeout:等待客戶端發送請求的超時時間,單位爲毫秒,默認爲60000,即1分鐘;

7) enableLookups:是否通過request.getRemoteHost()進行DNS查詢以獲取客戶端的主機名;默認爲true,解析的非常慢,爲了提高性能,可以設置爲false;

8) acceptCount:設置等待隊列的最大長度;通常在tomcat所有處理線程均處於繁忙狀態時,新發來的請求將被放置於等待隊列中;一旦maxThreads滿了,就開始排隊

11.engine

<Engine name="Catalina" defaultHost="localhost">  定義默認虛擬主機的

12.host

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

            unpackWARs="true" autoDeploy="true">

unpackWARs="true"   自動展開打包文件

autoDeploy="true"  tomcat啓動時,自動部署

13.自定義虛擬主機

  1: <Host name="www.a.com"  appBase="/www/webapp"
  2:              unpackWARs="true" autoDeploy="true">
  3:                 <Context path="" docBase="/www/webapp" reloadable="true"/>
  4:                 <Context path="/ldf" docBase="test" reloadable="true"/>
  5:          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  6:                 prefix="a.com_access_log." suffix=".txt"
  7:                 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  8:              </Host>

appBase=="" 如果不指絕對路徑,則表示相對路徑

Context path="" 訪問的uri路徑

docBase="/www/webapp"  表示相對於根目錄的其他目錄,如果就是根目錄,就把根目錄重寫一遍,網頁文件的存放位置

docBase="test" 相對於/www/webapp/test,經測試也可以當別名使用(uri使用)

網頁文件測試頁

  1: <%@ page language="java" %>
  2: <%@ page import="java.util.*" %>
  3: <html>
  4:   <head>
  5:     <title>JSP test page.</title>
  6:   </head>
  7:   <body>
  8:     <% out.println("Hello,world!"); %>
  9:   </body>
 10: </html>

14.server status

48901328

  1: vim /usr/local/tomcat/conf/tomcat-users.xml
  2: <role rolename="manager-gui"/>
  3: <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>

15.Host Manager

49268546

  1: vim /usr/local/tomcat/conf/tomcat-users.xml
  2: <role rolename="manager-gui"/>
  3: <role rolename="admin-gui"/>
  4: <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章