Tomcat服務器學習和使用

一、Tomcat服務器端口的配置

  • Tomcat的所有配置都放在conf文件夾之中,里面的server.xml文件是配置的核心文件。
  • 如果想修改Tomcat服務器的啟動端口,則可以在server.xml配置文件中的Connector節點進行的端口修改。
    將Tomcat服務器啟動端口修改成8081端口--修改config/server.xml文件
修改前
<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"
redirectPort="8443" />
修改后
<Connector port="8081" protocol="HTTP/1.1"  connectionTimeout="20000"
 redirectPort="8443" />

二、Tomcat服務器虛擬目錄的映射方式

Web應用開發好后,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之為虛似目錄的映射。那么在Tomcat服務器中,如何進行虛擬目錄的映射呢?總共有如下的幾種方式:

2.1 虛擬目錄的映射方式一:在server.xml文件的host元素中配置

默認的host配置
  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <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" />
   </Host>

在<Host></Host>這對標簽加上<Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />即可將在F盤下的JavaWebDemoProject這個JavaWeb應用映射到JavaWebApp這個虛擬目錄上,JavaWebApp這個虛擬目錄是由Tomcat服務器管理的,JavaWebApp是一個硬盤上不存在的目錄,是我們自己隨便寫的一個目錄,也就是虛擬的一個目錄,所以稱之為"虛擬目錄"。
修改后的host配置
<Host name="localhost"  appBase="webapps"
             unpackWARs="true" autoDeploy="true"
             xmlValidation="false" xmlNamespaceAware="false">
         <Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />
 </Host>


Context表示上下文,代表的就是一個JavaWeb應用,Context元素有兩個屬性,
- path:用來配置虛似目錄,必須以"/"開頭。
- docBase:配置此虛似目錄對應著硬盤上的Web應用所在目錄

請求路徑:localhost:8080/JavaWebApp/..

2.2 虛擬目錄的映射方式二:讓tomcat服務器自動映射

tomcat服務器會自動管理webapps目錄下的所有web應用,并把它映射成虛似目錄。換句話說,tomcat服務器webapps目錄中的web應用,外界可以直接訪問。
1、JavaWebDemoProject這個JavaWeb應用直接copy到tomcat服務器webapps目錄中。
2、localhost:8080/JavaWebDemoProject/..

2.3 虛擬目錄的映射方式三

1、在tomcat服務器的\conf\Catalina\localhost目錄下添加一個以xml作為擴展名的文件,xml文件的名字可以任意取,比如下面的aa.xml,注意這一句話"The context path and version will be derived from the base name of the file",這一句話的意思翻譯過來就是"context元素的path屬性源自于是這個xml文件的名字",上面提到過,Context元素的path屬性是用來配置虛似目錄的名稱的,所以虛似目錄的名稱就是這個xml文件的名稱。
2、在aa.xml文件中添加Context元素映射JavaWeb應用,代碼如下:

<Context docBase="F:\JavaWebDemoProject" />

三、Tomcat服務器配置虛似主機

3.1、配置虛擬主機

配置虛似主機就是配置一個網站。
  在Tomcat服務器配置一個虛擬主機(網站),需要修改conf文件夾下的server.xml這個配置文件,使用Host元素進行配置,打開server.xml,可以看到Tomcat服務器自帶的一個名稱為localhost的虛擬主機(網站),如下圖所示:

<Host name="www.gacl.cn" appBase="F:\JavaWebApps"></Host>

平時我們將開發好的JavaWeb應用放到webapps文件夾下,然后就可以使用"http://localhost:端口號/JavaWebAppName"的方式去訪問了,其實訪問的就是name是"localhost"的那臺虛擬主機(Host),這臺虛擬主機管理webapps文件夾下的所有web應用。
例如:http://localhost:8080/JavaWebDemoProject/1.jsp,這個URL地址訪問的就是名稱是localhost的那臺虛擬主機下的JavaWebDemoProject這個應用里面的1.jsp這個web資源。
這里我們新配置一個虛擬主機,虛擬主機的name是"www.gacl.cn",虛擬主機"www.gacl.cn"現在管理著JavaWebApps文件夾下的所有web應用,平時我們在互聯網上使用域名"www.baidu.com"訪問百度的網站時,其實就是在訪問一個名稱是"www.baidu.com"的虛擬主機,所以當我們要訪問name是"www.gacl.cn"的這個虛擬主機時,就可以使用"域名(www.gacl.cn)"去訪問。

3.2 通過域名被外部訪問

配置的主機(網站)要想通過域名被外部訪問,必須在DNS服務器或windows系統中注冊訪問網站時使用的域名,找到"C:\Windows\System32\drivers\etc"目錄下的hosts文件。

4、瀏覽器與服務器交互的過程

1、瀏覽器根據主機名"www.gacl.cn"去操作系統的Hosts文件中查找主機名對應的IP地址。
2、瀏覽器如果在操作系統的Hosts文件中沒有找到對應的IP地址,就去互聯網上的DNS服務器上查找"www.gacl.cn"這臺主機對應的IP地址。
3、瀏覽器查找到"www.gacl.cn"這臺主機對應的IP地址后,就使用IP地址連接到Web服務器。
4、瀏覽器連接到web服務器后,就使用http協議向服務器發送請求,發送請求的過程中,瀏覽器會向Web服務器以Stream(流)的形式傳輸數據,告訴Web服務器要訪問服務器里面的哪個Web應用下的Web資源。

5、打包JavaWeb應用

jar -cvf JavaWebApps.war JavaWebApps

6、Tomcat的體系結構

image.png

Tomcat服務器的啟動是基于一個server.xml文件的,Tomcat啟動的時候首先會啟動一個Server,Server里面就會啟動Service,Service里面就會啟動多個"Connector(連接器)",每一個連接器都在等待客戶機的連接,當有用戶使用瀏覽器去訪問服務器上面的web資源時,首先是連接到Connector(連接器),Connector(連接器)是不處理用戶的請求的,而是將用戶的請求交給一個Engine(引擎)去處理,Engine(引擎)接收到請求后就會解析用戶想要訪問的Host,然后將請求交給相應的Host,Host收到請求后就會解析出用戶想要訪問這個Host下面的哪一個Web應用,一個web應用對應一個Context。

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/.keystore" keystorePass="123456"/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <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" />
      </Host>
      <Host name="www.gacl.cn" appBase="F:\JavaWebApps">
        <Context path="" docBase="F:\JavaWebApps\JavaWebDemo1"/>
      </Host>
    </Engine>
  </Service>
</Server>

7、https連接器

7.1 生成Tomcat服務器的數字證書

1、SUN公司提供了制作證書的工具keytool, 在JDK 1.4以后的版本中都包含了這一工具,它的位置為<JAVA_HOME>\bin\keytool.exe
2、命令執行完之后,操作系統的用戶文件夾下面就會生成一個.keystore文件,如下圖所示:
3、使用命令:keytool -list -keystore .keystore查看.keystore密鑰庫里面的所有證書

7.2 配置https連接器

1、將生成的.keystore密鑰庫文件拷貝到Tomcat服務器的conf目錄下。
2、修改server.xml文件,配置https連接器,代碼如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="conf/.keystore" keystorePass="123456"/>

在server.xml文件中配置了一個端口是8443的加密連接器,瀏覽器訪問8443端口的連接器時,將會以加密的方式來訪問web服務器,這個連接器收到瀏覽器的請求后,將會向瀏覽器出示一份數字證書,瀏覽器再用數字證書里面的公鑰來加密數據,keystoreFile="conf/.keystore" 用來指明密鑰庫文件的所在路徑,服務器從密鑰庫中提取證書時需要密碼,keystorePass="123456"指明密鑰庫的訪問密碼。

https://www.cnblogs.com/xdp-gacl/p/3744053.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379