Tomcat服務(wù)器學(xué)習(xí)和使用

一结借、Tomcat服務(wù)器端口的配置

  • Tomcat的所有配置都放在conf文件夾之中际邻,里面的server.xml文件是配置的核心文件胯究。
  • 如果想修改Tomcat服務(wù)器的啟動(dòng)端口蚊伞,則可以在server.xml配置文件中的Connector節(jié)點(diǎn)進(jìn)行的端口修改。
    將Tomcat服務(wù)器啟動(dòng)端口修改成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服務(wù)器虛擬目錄的映射方式

Web應(yīng)用開(kāi)發(fā)好后矛渴,若想供外界訪問(wèn),需要把web應(yīng)用所在目錄交給web服務(wù)器管理惫搏,這個(gè)過(guò)程稱之為虛似目錄的映射具温。那么在Tomcat服務(wù)器中,如何進(jìn)行虛擬目錄的映射呢筐赔?總共有如下的幾種方式:

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

默認(rèn)的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>這對(duì)標(biāo)簽加上<Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />即可將在F盤下的JavaWebDemoProject這個(gè)JavaWeb應(yīng)用映射到JavaWebApp這個(gè)虛擬目錄上铣猩,JavaWebApp這個(gè)虛擬目錄是由Tomcat服務(wù)器管理的,JavaWebApp是一個(gè)硬盤上不存在的目錄茴丰,是我們自己隨便寫(xiě)的一個(gè)目錄达皿,也就是虛擬的一個(gè)目錄,所以稱之為"虛擬目錄"贿肩。
修改后的host配置
<Host name="localhost"  appBase="webapps"
             unpackWARs="true" autoDeploy="true"
             xmlValidation="false" xmlNamespaceAware="false">
         <Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />
 </Host>


Context表示上下文峦椰,代表的就是一個(gè)JavaWeb應(yīng)用,Context元素有兩個(gè)屬性汰规,
- path:用來(lái)配置虛似目錄们何,必須以"/"開(kāi)頭。
- docBase:配置此虛似目錄對(duì)應(yīng)著硬盤上的Web應(yīng)用所在目錄

請(qǐng)求路徑:localhost:8080/JavaWebApp/..

2.2 虛擬目錄的映射方式二:讓tomcat服務(wù)器自動(dòng)映射

tomcat服務(wù)器會(huì)自動(dòng)管理webapps目錄下的所有web應(yīng)用控轿,并把它映射成虛似目錄。換句話說(shuō)拂封,tomcat服務(wù)器webapps目錄中的web應(yīng)用茬射,外界可以直接訪問(wèn)。
1冒签、JavaWebDemoProject這個(gè)JavaWeb應(yīng)用直接copy到tomcat服務(wù)器webapps目錄中在抛。
2、localhost:8080/JavaWebDemoProject/..

2.3 虛擬目錄的映射方式三

1萧恕、在tomcat服務(wù)器的\conf\Catalina\localhost目錄下添加一個(gè)以xml作為擴(kuò)展名的文件刚梭,xml文件的名字可以任意取肠阱,比如下面的aa.xml,注意這一句話"The context path and version will be derived from the base name of the file"朴读,這一句話的意思翻譯過(guò)來(lái)就是"context元素的path屬性源自于是這個(gè)xml文件的名字"屹徘,上面提到過(guò),Context元素的path屬性是用來(lái)配置虛似目錄的名稱的衅金,所以虛似目錄的名稱就是這個(gè)xml文件的名稱噪伊。
2、在aa.xml文件中添加Context元素映射JavaWeb應(yīng)用氮唯,代碼如下:

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

三鉴吹、Tomcat服務(wù)器配置虛似主機(jī)

3.1、配置虛擬主機(jī)

配置虛似主機(jī)就是配置一個(gè)網(wǎng)站惩琉。
  在Tomcat服務(wù)器配置一個(gè)虛擬主機(jī)(網(wǎng)站)豆励,需要修改conf文件夾下的server.xml這個(gè)配置文件,使用Host元素進(jìn)行配置瞒渠,打開(kāi)server.xml良蒸,可以看到Tomcat服務(wù)器自帶的一個(gè)名稱為localhost的虛擬主機(jī)(網(wǎng)站),如下圖所示:

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

平時(shí)我們將開(kāi)發(fā)好的JavaWeb應(yīng)用放到webapps文件夾下在孝,然后就可以使用"http://localhost:端口號(hào)/JavaWebAppName"的方式去訪問(wèn)了诚啃,其實(shí)訪問(wèn)的就是name是"localhost"的那臺(tái)虛擬主機(jī)(Host),這臺(tái)虛擬主機(jī)管理webapps文件夾下的所有web應(yīng)用私沮。
例如:http://localhost:8080/JavaWebDemoProject/1.jsp始赎,這個(gè)URL地址訪問(wèn)的就是名稱是localhost的那臺(tái)虛擬主機(jī)下的JavaWebDemoProject這個(gè)應(yīng)用里面的1.jsp這個(gè)web資源。
這里我們新配置一個(gè)虛擬主機(jī)仔燕,虛擬主機(jī)的name是"www.gacl.cn"造垛,虛擬主機(jī)"www.gacl.cn"現(xiàn)在管理著JavaWebApps文件夾下的所有web應(yīng)用,平時(shí)我們?cè)诨ヂ?lián)網(wǎng)上使用域名"www.baidu.com"訪問(wèn)百度的網(wǎng)站時(shí)晰搀,其實(shí)就是在訪問(wèn)一個(gè)名稱是"www.baidu.com"的虛擬主機(jī)五辽,所以當(dāng)我們要訪問(wèn)name是"www.gacl.cn"的這個(gè)虛擬主機(jī)時(shí),就可以使用"域名(www.gacl.cn)"去訪問(wèn)外恕。

3.2 通過(guò)域名被外部訪問(wèn)

配置的主機(jī)(網(wǎng)站)要想通過(guò)域名被外部訪問(wèn)杆逗,必須在DNS服務(wù)器或windows系統(tǒng)中注冊(cè)訪問(wèn)網(wǎng)站時(shí)使用的域名,找到"C:\Windows\System32\drivers\etc"目錄下的hosts文件鳞疲。

4罪郊、瀏覽器與服務(wù)器交互的過(guò)程

1、瀏覽器根據(jù)主機(jī)名"www.gacl.cn"去操作系統(tǒng)的Hosts文件中查找主機(jī)名對(duì)應(yīng)的IP地址尚洽。
2悔橄、瀏覽器如果在操作系統(tǒng)的Hosts文件中沒(méi)有找到對(duì)應(yīng)的IP地址,就去互聯(lián)網(wǎng)上的DNS服務(wù)器上查找"www.gacl.cn"這臺(tái)主機(jī)對(duì)應(yīng)的IP地址。
3癣疟、瀏覽器查找到"www.gacl.cn"這臺(tái)主機(jī)對(duì)應(yīng)的IP地址后挣柬,就使用IP地址連接到Web服務(wù)器。
4睛挚、瀏覽器連接到web服務(wù)器后邪蛔,就使用http協(xié)議向服務(wù)器發(fā)送請(qǐng)求,發(fā)送請(qǐng)求的過(guò)程中竞川,瀏覽器會(huì)向Web服務(wù)器以Stream(流)的形式傳輸數(shù)據(jù)店溢,告訴Web服務(wù)器要訪問(wèn)服務(wù)器里面的哪個(gè)Web應(yīng)用下的Web資源。

5委乌、打包JavaWeb應(yīng)用

jar -cvf JavaWebApps.war JavaWebApps

6床牧、Tomcat的體系結(jié)構(gòu)

image.png

Tomcat服務(wù)器的啟動(dòng)是基于一個(gè)server.xml文件的,Tomcat啟動(dòng)的時(shí)候首先會(huì)啟動(dòng)一個(gè)Server遭贸,Server里面就會(huì)啟動(dòng)Service戈咳,Service里面就會(huì)啟動(dòng)多個(gè)"Connector(連接器)",每一個(gè)連接器都在等待客戶機(jī)的連接壕吹,當(dāng)有用戶使用瀏覽器去訪問(wèn)服務(wù)器上面的web資源時(shí)著蛙,首先是連接到Connector(連接器),Connector(連接器)是不處理用戶的請(qǐng)求的耳贬,而是將用戶的請(qǐng)求交給一個(gè)Engine(引擎)去處理踏堡,Engine(引擎)接收到請(qǐng)求后就會(huì)解析用戶想要訪問(wèn)的Host,然后將請(qǐng)求交給相應(yīng)的Host咒劲,Host收到請(qǐng)求后就會(huì)解析出用戶想要訪問(wèn)這個(gè)Host下面的哪一個(gè)Web應(yīng)用,一個(gè)web應(yīng)用對(duì)應(yīng)一個(gè)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服務(wù)器的數(shù)字證書(shū)

1腐魂、SUN公司提供了制作證書(shū)的工具keytool帐偎, 在JDK 1.4以后的版本中都包含了這一工具,它的位置為<JAVA_HOME>\bin\keytool.exe
2蛔屹、命令執(zhí)行完之后削樊,操作系統(tǒng)的用戶文件夾下面就會(huì)生成一個(gè).keystore文件,如下圖所示:
3兔毒、使用命令:keytool -list -keystore .keystore查看.keystore密鑰庫(kù)里面的所有證書(shū)

7.2 配置https連接器

1漫贞、將生成的.keystore密鑰庫(kù)文件拷貝到Tomcat服務(wù)器的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文件中配置了一個(gè)端口是8443的加密連接器擂红,瀏覽器訪問(wèn)8443端口的連接器時(shí),將會(huì)以加密的方式來(lái)訪問(wèn)web服務(wù)器,這個(gè)連接器收到瀏覽器的請(qǐng)求后昵骤,將會(huì)向?yàn)g覽器出示一份數(shù)字證書(shū)树碱,瀏覽器再用數(shù)字證書(shū)里面的公鑰來(lái)加密數(shù)據(jù),keystoreFile="conf/.keystore" 用來(lái)指明密鑰庫(kù)文件的所在路徑变秦,服務(wù)器從密鑰庫(kù)中提取證書(shū)時(shí)需要密碼成榜,keystorePass="123456"指明密鑰庫(kù)的訪問(wèn)密碼。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹦玫,一起剝皮案震驚了整個(gè)濱河市赎婚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌樱溉,老刑警劉巖挣输,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異福贞,居然都是意外死亡撩嚼,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門挖帘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)完丽,“玉大人,你說(shuō)我怎么就攤上這事拇舀÷咦澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵骄崩,是天一觀的道長(zhǎng)聘鳞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)刁赖,這世上最難降的妖魔是什么搁痛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮宇弛,結(jié)果婚禮上鸡典,老公的妹妹穿的比我還像新娘。我一直安慰自己枪芒,他們只是感情好彻况,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著舅踪,像睡著了一般纽甘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抽碌,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天悍赢,我揣著相機(jī)與錄音,去河邊找鬼。 笑死左权,一個(gè)胖子當(dāng)著我的面吹牛皮胡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赏迟,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼屡贺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了锌杀?” 一聲冷哼從身側(cè)響起甩栈,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糕再,沒(méi)想到半個(gè)月后量没,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡亿鲜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年允蜈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒿柳。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡饶套,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垒探,到底是詐尸還是另有隱情妓蛮,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布圾叼,位于F島的核電站蛤克,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏夷蚊。R本人自食惡果不足惜构挤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惕鼓。 院中可真熱鬧筋现,春花似錦、人聲如沸箱歧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呀邢。三九已至洒沦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間价淌,已是汗流浹背申眼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瞒津, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人豺型。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓仲智,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親姻氨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353