Jetty9部署多個項目及虛擬主機配置的方法

      網友投稿 1131 2022-05-30

      1.介紹

      Jetty會對webapps目錄下的幾乎所有war包、目錄、xml文件進行自動部署。如果war包、目錄和xml文件同名,則部署的順序為xml文件 > war包 > 目錄 。如webapps目錄下有:bank.war、bank目錄、bank.xml,其中目bank錄為bank.war解壓后的目錄,bank.xml中引用的是bank.war包或者bank目錄,則此時僅有xml文件被部署。如果它們不同名,但又是同一個工程的,則會導致工程被重復部署!,所以同一個項目的war包、目錄、xml文件都應該同名。

      2.Jetty的上下文路徑(context path)配置

      默認的上下文路徑

      默認情況下,Jetty會將webapps目錄下的工程名作為上下文路徑。如果工程名稱為ROOT,則上下文路徑為/。如將bank.war(或bank目錄)放在webapps目錄下,則上下文路徑為/bank,如果將bank.war重命名為ROOT.war,則上下文路徑為/。那么要訪問bank的ULR的上下文路徑就是:http://localhost:8888/bank

      自定義上下文路徑

      如果上述的方式無法滿足要求,則可以通過xml文件來配置上下文路徑:

      第一步:在jetty根目錄下的webapps目錄下創建一個xml文件,名稱可以任意,如jetyy-webapp.xml;

      第二步:假設我們webapps目錄下有個bank.war項目,我們來給它配置一個自定義上下文路徑,在xml文件中加入如下內容:

      jetyy-webapp.xml

      /bank888 /bank.war

      1

      2

      3

      4

      5

      6

      配置完成后,訪問bank站點的上下文路徑就是:http://localhost:8888/bank888

      3.配置虛擬主機

      虛擬主機讓訪問web的多一種方式,虛擬主機是一般是一個注冊在DNS的域名。多個域名對應到一個IP。虛擬主機可以解決共享一個Jetty服務器實例的同一個IP。

      虛擬主機的配置有以下方法:

      在webapps目錄下使用一份上下文路徑配置的xml文件,如上面的jetty-webapp.xml。

      給所有在webapps目錄下發現的上下文,用綁定配置虛擬主機的方式創建一個自定義部署。

      在嵌入Jetty的應用情況中,還可以通過直接調用API的方式來實現虛擬主機配置及訪問

      Jetty9部署多個項目及虛擬主機配置的方法

      使用WEB-INF/jetty-web.xml來配置虛擬主機(已過時)

      3.1虛擬主機的名稱

      Jetty支持以下這個形式的虛擬主機名稱:

      www.hostname.com,類似這樣的全限定主機名。這樣的配置使用來自www.hostname.com和hostname.com的訪問都可以被接收到

      .hostname.com,使用通配符限定主機,但只匹配一級任意名稱,如.foo.com可以匹配到www.foo.com和m.foo.com,但無法匹配到www.other.foo.com。

      10.0.0.2,IP地址也可以用來作為虛擬主機名,這表明上下文要處理從沒有指定主機名的服務器端口收到的請求

      @ConnectorName,連接名稱,這不是嚴格意義上的虛擬主機,它只匹配通過Connector.setName(String)設置名稱的連接器收到的請求。

      www.√integral.com,非ASCII和IDN域名

      3.2配置虛擬主機

      我們給上下文/bank888配置虛擬主機:

      /bank888 /bank.war www.MyVirtualDomain.com m.MyVirtualDomain.com *.OtherVirtualDomain.com @ConnectorName localhost 127.0.0.1

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      注意:在實踐中,@ConnectorName這種方式,會比較容易出問題,一失敗,上下文就會失敗。

      訪問的方式就變成了(虛擬主機+端口+上下文路徑):http://127.0.0.1:8080/bank888

      如果還需要添加webapps中其他項目的虛擬主機,可以在webapps目錄下繼續按上面的方式創建xml文件。推薦xml文件與war名稱或目錄名稱一樣,否則會引起重復部署。

      注意:虛擬主機的方式只是提供了其他的方式來訪問web,并不影響原有的訪問方式(原有的:IP+端口+上下文路徑)。

      4.Jetty9下關閉目錄訪問(關閉目錄遍歷和關閉目錄下的文件展示

      沒有關閉目錄訪問前,訪問http://localhost:8888

      上述就將webapps目錄下的web全部顯示出來了。上面這種情況,是沒有配置任何自定義上下文的情況下出現的。

      自定義配置web的上下文,下關閉目錄訪問

      / /gro.war www.MyVirtualDomain.com m.MyVirtualDomain.com *.OtherVirtualDomain.com localhost 127.0.0.1 org.eclipse.jetty.servlet.Default.dirAllowed false

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      上面定義了web的上下文為/,且關閉目錄訪問,此時如果訪問http://localhost:8888:

      注意:實踐結果顯示,只要自定義配置上下文中,有一個web的上下文是/,那么基本不可能再顯示出webapps下的web目錄。似乎與下面的配置無任何關系:

      org.eclipse.jetty.servlet.Default.dirAllowed false

      1

      2

      3

      4

      掃碼查看更多:

      XML 虛擬化

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:一種Python全局配置規范以及其魔改
      下一篇:Java設計模式基礎 - 單例模式
      相關文章
      亚洲国产精品人久久| 国内精品久久久久久久亚洲| 亚洲深深色噜噜狠狠爱网站| 亚洲综合色成在线播放| 亚洲第一页日韩专区| 色噜噜的亚洲男人的天堂| 亚洲综合久久精品无码色欲| 亚洲人成人77777在线播放| 精品亚洲成a人片在线观看| 精品无码一区二区三区亚洲桃色 | 亚洲精品无码成人片久久| 精品国产亚洲一区二区在线观看| 亚洲美女高清一区二区三区| www.亚洲色图| 国产成人精品久久亚洲高清不卡 | 亚洲国产精品尤物yw在线| 国产L精品国产亚洲区久久| 久久久久亚洲av毛片大| 亚洲乱码中文字幕久久孕妇黑人| 亚洲午夜久久久影院| 亚洲av永久无码精品漫画| 亚洲欧洲日产国产综合网| 久久亚洲精品中文字幕| 亚洲国产成人九九综合| 四虎亚洲精品高清在线观看| 亚洲欧美成人av在线观看| 亚洲国产精品无码中文lv| 国产91成人精品亚洲精品| 久久精品亚洲男人的天堂| 国产亚洲A∨片在线观看| 久久亚洲日韩看片无码| 亚洲美女一区二区三区| 亚洲卡一卡二卡乱码新区| 亚洲avav天堂av在线网毛片| yy6080亚洲一级理论| 亚洲精品国产精品乱码不99| 亚洲欧洲第一a在线观看| 亚洲13又紧又嫩又水多| 在线观看亚洲免费| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲国产综合专区在线电影|