溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jetty9配置指南及jetty9部署jenkins

發(fā)布時間:2020-08-04 04:19:35 來源:網(wǎng)絡(luò) 閱讀:5425 作者:zenge_blog 欄目:開發(fā)技術(shù)


jetty下載地址:

https://www.eclipse.org/jetty/download.html


jetty的安裝:

下載.tgz的包解壓縮的指定目錄后即可

例如:將jetty-distribution-9.4.6.v20170531.tar.gz包解壓縮到/usr/local/jetty目錄。

我們默認(rèn)把jetty的根目錄當(dāng)成 $JETTY_HOME



jetty目錄結(jié)構(gòu):

[root@localhost jetty01]# ll
total 712
drwxr-xr-x  2 root root   4096 Sep  1 14:59 bin
drwxr-xr-x  7 root root   4096 Sep  1 14:53 demo-base
drwxr-xr-x  3 root root   4096 Sep  1 14:53 etc
-rw-r--r--  1 root root    198 Sep  1 16:19 jetty01.state
drwxr-xr-x 13 root root   4096 Sep  1 14:53 lib
-rw-r--r--  1 root root  30012 Sep  1 14:53 license-eplv10-aslv20.html
drwxr-xr-x  2 root root   4096 Sep  1 14:53 logs
drwxr-xr-x 19 root root   4096 Sep  1 14:53 modules
-rw-r--r--  1 root root   6262 Sep  1 14:53 notice.html
-rw-r--r--  1 root root   1637 Sep  1 14:53 README.TXT
drwxr-xr-x  2 root root   4096 Sep  1 14:53 resources
-rw-r--r--  1 root root   5702 Sep  1 14:53 start.ini
-rw-r--r--  1 root root 147725 Sep  1 14:53 start.jar
-rw-r--r--  1 root root 483631 Sep  1 14:53 VERSION.txt
drwxr-xr-x  2 root root   4096 Sep  1 16:36 webapps


目錄、文件簡介

LocationDescription

license-eplv10-aslv20.html

Jetty的許可文件

README.txt

有用的開始信息

VERSION.txt

版本信息

bin/

存放在Unix系統(tǒng)下運行的shell腳本

demo-base/

一個可運行包含示例web應(yīng)用的Jetty服務(wù)器基目錄

etc/

Jetty的配置文件

lib/

Jetty運行所必須的jar文件

logs/

日志

modules/

各個模塊

notice.html

許可信息等

resources/

包含新增到classpath配置文件夾,如log4j.properties

start.ini

存放啟動信息

start.jar

運行Jetty的jar

webapps/

一個用來存放運行在默認(rèn)配置下的Jetty Web應(yīng)用目錄


重要的目錄和文件:

bin/jetty.sh:jetty服務(wù)啟動/停止腳本,主要有以下變量的配置

JAVA: 設(shè)置java命令的絕對路徑,即jdk的bin目錄下的java命令的路徑,如果沒設(shè)置,則從PATH環(huán)境變量中查找;
JAVA_OPTIONS:設(shè)置jvm參數(shù);
JETTY_HOME:jetty的安裝目錄,如果沒有設(shè)置,則從調(diào)用該腳本的上下文環(huán)境中猜測;
JETTY_BASE:jetty的base目錄,即當(dāng)前工程使用的jetty環(huán)境的根目錄,如果沒有設(shè)置,則與JETTY_HOME相同;
JETTY_RUN:配置保存jetty pid文件的路徑,如果沒有配置,根據(jù)以下順序查找第一個可用目錄:/var/run, /usr/var/run, JETTY_BASE, /tmp;
JETTY_PID:pid文件路徑,默認(rèn)為:$JETTY_RUN/$NAME.pid(NAME變量表示啟動jetty時,去掉擴(kuò)展名的腳本名稱);
JETTY_ARGS:jetty參數(shù),如配置端口號等:JETTY_ARGS=8080 jetty.spdy.port=8443
JETTY_USER:配置啟動用戶,如以nkcoder用戶啟動:JETTY_USER=nkcoder


jetty運行:

命令方式啟動:

cd $JETTY_HOME
java -jar start.jar

這個命令能執(zhí)行需要$JETTY_HOME下有start.ini文件,改文件中存放的是jetty服務(wù)啟動信息

start.ini文件默認(rèn)配置如下:

 cat start.ini | egrep -v "^#|^$"
--module=home-base-warning
--module=ext
--module=server
--module=jsp
--module=resources
--module=deploy
--module=jstl
--module=websocket
--module=http


通過上面的命令啟動jetty后,在瀏覽器中輸入http://localhost:8080 訪問jetty,出現(xiàn)以下報錯頁面

jetty9配置指南及jetty9部署jenkins 

這是因為jetty啟動時,會在$JETTY_HOME/webapps中找war包或者web應(yīng)用的目錄。而默認(rèn)情況下$JETTY_HOME/webapps下沒有web應(yīng)用的war包和文件。所以提示404。


基礎(chǔ)應(yīng)用的例子

cd $JETTY_HOME/demo-base/
java -jar $JETTY_HOME/start.jar

訪問http://localhost:8080 此時可以看到一個Jetty的歡迎頁面,頁面上包含幾個簡單的例子,歡迎頁面如下

jetty9配置指南及jetty9部署jenkins


來看下demo-base目錄中的文件,同樣有一個webapps目錄。

#ll demo-base/
total 20
drwxr-xr-x 2 root root 4096 Sep  1 14:53 etc
drwxr-xr-x 3 root root 4096 Sep  1 14:53 lib
drwxr-xr-x 2 root root 4096 Sep  1 14:53 resources
drwxr-xr-x 2 root root 4096 Sep  1 14:53 start.d
drwxr-xr-x 5 root root 4096 Sep  1 14:53 webapps


jetty如何部署web應(yīng)用的

把要部署的工程(war包、工程目錄或者xml描述文件放到${JETTY_HOME}的webapps目錄下即可;

需要注意的是:

jetty會對webapps目錄下的幾乎所有war包、目錄、xml文件(有一些例外,如隱藏文件和.d結(jié)尾的目錄等會被忽略)進(jìn)行自動部署。

如果war包、目錄和xml文件同名,則部署的順序為xml文件 > war包 > 目錄 。比如,webapps目錄下有:rank.war,rank目錄以及rank.xml,其中rank目錄為rank.war解壓后的目錄,rank.xml中引用的是rank.war包或者rank目錄,則此時,僅有xml文件被部署,這里成立的前提是同名,如果不同名,但它們是同一個工程,則會導(dǎo)致工程被重復(fù)部署,切記!


  • 例如一個包含 WEB-INF/ 子文件夾的example/文件夾做為一個標(biāo)準(zhǔn)的web應(yīng)用進(jìn)行部署,否則就按靜態(tài)資源部署,context路徑為/example(訪問路徑: http://localhost:8080/example/);若文件夾名字為ROOT,則訪問路徑為/;若文件夾名字末尾為.d則此文件夾被忽略(除非被特殊的配置文件引用)

  • 若一個文件example.war被部署在webapps下,則context路徑為example/,如果名字為ROOT則訪問路徑為/,如果example.war文件和example/文件夾同時存在,只有war文件會被部署(這個文件會被當(dāng)做一個沒有被解壓的目錄來使用)

  • 一個像example.xml的配置文件,若文件中是標(biāo)準(zhǔn)的配置信息,也會被部署,文件中必須包含context path,如果context path和example.xml同時存在,只有example.xml會被部署。

  如果你有一個標(biāo)準(zhǔn)的web應(yīng)用,可以直接將其拷貝到webapps文件夾下進(jìn)行熱部署。


看下demo-base/webapps目錄下的文件

# ls -l webapps/
total 3624
-rw-r--r-- 1 root root  986372 Sep  1 14:53 async-rest.war
drwxr-xr-x 3 root root    4096 Sep  1 14:53 doc
-rw-r--r-- 1 root root     533 Sep  1 14:53 example-moved.xml
-rw-r--r-- 1 root root     341 Sep  1 14:53 README.TXT
drwxr-xr-x 3 root root    4096 Sep  1 14:53 ROOT
drwxr-xr-x 2 root root    4096 Sep  1 14:53 test.d
-rw-r--r-- 1 root root   60716 Sep  1 14:53 test-jaas.war
-rw-r--r-- 1 root root     945 Sep  1 14:53 test-jaas.xml
-rw-r--r-- 1 root root   62949 Sep  1 14:53 test-jndi.war
-rw-r--r-- 1 root root    3430 Sep  1 14:53 test-jndi.xml
-rw-r--r-- 1 root root  517192 Sep  1 14:53 test-spec.war
-rw-r--r-- 1 root root    2456 Sep  1 14:53 test-spec.xml
-rw-r--r-- 1 root root 1012480 Sep  1 14:53 test.war
-rw-r--r-- 1 root root    4623 Sep  1 14:53 test.xml
-rw-r--r-- 1 root root 1018072 Sep  1 14:53 xref-proxy.war

webapps中文件介紹:

ROOT/:這個文件夾包含各種靜態(tài)資源。包含Jetty歡迎頁面,默認(rèn)訪問路徑為/
test.d:一個包含附加配置文件的文件夾,被test.xml使用用來為test.war增加額外的配置
test.xml:一個context配置文件,用來配置和部署test.war,包含上下文環(huán)境和test.d里面的配置附加的配置信息
test.war:在test.xml里面配置的示例web程序
async-rest.war:一個異步示例的web應(yīng)用程序
test-jaas.war:一個使用JAAS身份驗證的web應(yīng)用程序。
test-jaas.xml:用來配置test-jaas.war的配置文件
test-jndi.war:一個使用JNDI的示例應(yīng)用
test-jndi.xml:用來配置test-jndi.war的配置文件
test-spec.war:一個使用注解,ServletContainerInitializers 和Servlet 3.0/3.1規(guī)范的示例應(yīng)用
test-spec.xml:用來配置test-spec.war的配置文件
xref-proxy.war:使用代理的一個示例應(yīng)用
example-moved.xml:一個演示MovedContextHandler重定向使用的示例應(yīng)用


總結(jié):

demo-base/webapps目錄下有很多同名的war包和xml文件比如:

test.war和test.xml ,test-jaas.war和test-jaas.xml

這兩個文件可以看成是一組。jetty部署example.war包時,需要一個同名的example.xml文件,該文件保存war包的配置

一個簡單的xml文件內(nèi)容如下:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
        <Set name="contextPath">/jenkins</Set>
        <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
        <Get name="securityHandler">
                <Set name="loginService">
                        <New class="org.eclipse.jetty.security.HashLoginService">
                                <Set name="name">Jenkins Realm</Set>
                                <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
                        </New>
                </Set>
        </Get>
</Configure>

contextPath配置的是訪問web應(yīng)用時的路徑,上面配置的是/jenkins,所以訪問該應(yīng)用時,路徑為

http://localhost:8080/jenkins/


下面以jetty9部署jenkins為例介紹jetty9使用配置

將jenkins.war拷貝到$JETTY_HOME/webapps目錄下,創(chuàng)建jenkins.xml文件,配置如上面的文件。啟動jetty服務(wù)即可。

# ll
total 63180
-rwxr-xr-x 1 root root 64685923 Sep  1 16:04 jenkins.war
-rw-r--r-- 1 root root      642 Sep  1 16:26 jenkins.xml
-rw-r--r-- 1 root root     1412 Sep  1 14:53 README.TXT


參考鏈接:

https://nkcoder.github.io/2014/06/18/jetty-deploy-help/

http://www.cnblogs.com/yiwangzhibujian/p/5832597.html







向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI