Jetty9容器安裝與使用

1.Jetty9介紹

截止本文,Jetty已經出到9了。Jetty作爲一個小型、快速、可嵌入的Web server和servlet容器,在開發和生產方面,Jetty被廣泛應用於各種項目、產品中。 Jetty可以很輕易地被嵌入到設備、工具、框架、應用服務器、集羣中。Jetty提供了Web server和javax.servlet容器功能,支持HTTP/2、WebSocket、 OSGi、 JMX、 JNDI、 JAAS以及其他許多的集成。下面這張表是Jetty的特點及它的支持的一些領域:

Jetty特點 Jetty支持
功能齊全、標準化 大型集羣,比如Yahoo Hadoop集羣
開源和商用 雲計算,比如Google AppEngine
靈活可擴展 SaaS,例如Yahoo!還有Zimbra
軟件小 應用服務器,如Apache Geronimo
可嵌入 框架,如GWT
異步的 工具,如EclipseIDE
企業可擴展 設備,如電話

Jetty Web Server提供了一個HTTP server和Servlet容器 , 能夠從獨立的或嵌入的Jetty實例中提供靜態和動態內容 。Jetty Web Server提供以下支持:

  • 異步的 HTTP Server
  • 基於標準的Servlet容器
  • websocket server
  • http/2 server
  • 異步的 Client (http/1.1, http/2, websocket)
  • OSGI, JNDI, JMX, JASPI, AJP 等

2.Jetty的使用方法

2.1.以插件的形式使用Jetty

這種方式是以內嵌Jetty的形式來使用Jetty!

第一步:在pom.xml中加入Jetty插件:

<plugin>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.4.27.v20200227</version>
</plugin>

第二步:在工程根目錄運行下面的命令,就可以運行工程

mvn jetty:run

默認情況下,Jetty web容器的默認端口是8080。在瀏覽器輸入以下URL即可訪問:

http://localhost:8080/路徑

2.2.安裝Jetty容器並使用

2.2.1.下載Jetty

下載jetty-distribution-9.4.27.v20200227.tar.gz

2.2.2.解壓

tar -zxvf jetty-distribution-9.4.27.v20200227.tar.gz

解壓出來的目錄就是Jetty的安裝目錄。

2.2.3配置Jetty

  • 進入Jetty安裝目錄編輯bin/jetty.sh文件,打開JETTY_HOME和JAVA_OPTIONS的註釋

Jetty的安裝路徑

JETTY_HOME=/home/kyun/Documents/jetty-distribution-9.4.27.v20200227

配置JVM

JAVA_OPTIONS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n -server -Xmx2048m -Xms2048m -Xmn1024m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m"

(1)配置成能夠進行代碼的調試,debug端口爲9999:-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n
(2)爲這個Jetty容器設置jvm的啓動內存:-Xmx2048m -Xms2048m -Xmn1024m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=128m

  • 設置jetty端口,進入Jetty安裝目錄修改etc/jetty-http.xml文件
<Set name="port"><Property name="jetty.http.port" deprecated="jetty.port" default="8888" /></Set>
  • 設置服務器超時,進入Jetty安裝目錄修改etc/jetty.xml文件
<Set name="stopTimeout"><Property name="jetty.server.stopTimeout" default="5000"/></Set>
  • 關閉目錄訪問(關閉目錄遍歷和關閉目錄下的文件展示)
  1. 找到jetty根目錄下的 /etc/webdefault.xml

  2. 找到default下的dirAllowed選項

    <init-param>
      <param-name>dirAllowed</param-name>
      <param-value>true</param-value>
    </init-param>

在實踐中,上述的配置似乎不起作用。反而是自定義上下文爲/,更能實現關閉目錄瀏覽。請參考《Jetty9部署多個項目及虛擬主機配置的方法》

  • Jetty安裝目錄/etc下的文件是Jetty的配置文件,如jetty-customrequestlog.xml、jetty-requestlog.xml、jetty-debuglog.xml文件是用來設置jetty的日誌的,如日誌路徑

3.部署項目到Jetty

把打包出來的war包,複製到webapps目錄下,如將FlowerShop.war包放到webapps目錄下。

4.Jetty啓動/停止

通過Jetty安裝目錄下的bin/jetty.sh腳本來啓動/停止jetty,如:

bin$ ./jetty.sh start
bin$ ./jetty.sh stop
bin$ ./jetty.sh restart

也可以通過Jetty根目錄下的start.jar來啓動,如:

$ java -jar start.jar

如果希望通過start.jar停止,則在啓動的時候需要指定STOP.PORT和STOP.KEY兩個參數,且啓動和停止時,兩個參數的值必須匹配,如:

# 啓動
$ java -jar start.jar STOP.PORT=8181 STOP.KEY=ugcKey
# 停止
$ java -jar start.jar STOP.PORT=8181 STOP.KEY=ugcKey --stop

通過start.jar查看幫助和配置:

$ java -jar start.jar --help

主要的查看配置的參數有:

--list-config: 查看啓動jetty使用的配置:java環境,jetty環境,JVM參數,屬性,服務器classpath,服務器的xml配置等;--list-modules: 查看系統使用的模塊--list-classpath: 查看系統使用的classpath--version:查看版本信息--module=<model-name>:臨時啓用一個模塊

一般通過bin/jetty.sh控制jetty的運行,使用start.jar查看jetty的配置和狀態。

5.瀏覽web

啓動完瀏覽器就可以在瀏覽器輸入:http://localhost:8888/war包名(即上下文路徑)/路徑進行訪問了,如:http://127.0.0.1:8888/FlowerShop/home1
在這裏插入圖片描述Jetty安裝成功!

更多內容可以參考:
《SpringBoot項目打包war發佈到Jetty9》
《Jetty9部署多個項目及虛擬主機配置的方法》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章