Jetty9部署多個項目及虛擬主機配置的方法
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
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的方式來實現虛擬主機配置及訪問
使用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配置虛擬主機:
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的上下文,下關閉目錄訪問
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目錄。似乎與下面的配置無任何關系:
1
2
3
4
掃碼查看更多:
XML 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。