Jettyは無料のオープンソースJavaHTTPサーバーであり、開発と本番の両方でさまざまなプロジェクトで使用できます。 Jettyはフットプリントが小さく、埋め込み可能でフル機能を備えており、SPDY、WebSocket、OSGi、JNDI、JAAS、およびその他の多くの統合をサポートしています。 Jettyは、Alfresco、Apache ActiveMQ、Apache Spark、Apache Maven、Red5、Hadoopなどの複数のアクティブな製品で使用されています。
このチュートリアルでは、Debian10にJettyをインストールする方法を紹介します。
- Debian10を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
まず、システムを最新バージョンに更新することをお勧めします。次のコマンドを実行することでそれを行うことができます:
apt-get update -y
apt-get upgrade -y
システムが更新されたら、システムを再起動して構成の変更を適用します。
Javaのインストール
JettyはJavaベースのアプリケーションです。したがって、Javaをシステムにインストールする必要があります。デフォルトでは、最新バージョンのJavaがDebian10デフォルトリポジトリで利用可能です。次のコマンドを実行するだけでインストールできます:
apt-get install default-jdk -y
インストールが完了したら、次のコマンドでJavaのバージョンを確認できます。
java --version
次の出力が得られるはずです:
openjdk 11.0.3 2019-04-16 OpenJDK Runtime Environment (build 11.0.3+7-post-Debian-5) OpenJDK 64-Bit Server VM (build 11.0.3+7-post-Debian-5, mixed mode, sharing)
デフォルトでは、JettyはDebian10のデフォルトリポジトリで利用できます。次のコマンドを実行するだけでインストールできます:
apt-get install jetty9 -y
インストールしたら、次のコマンドでJettyのバージョンを確認します。
apt show jetty9
次の出力が表示されます。
Package: jetty9 Version: 9.4.15-1 Priority: optional Section: java Maintainer: Debian Java Maintainers <[email protected]> Installed-Size: 757 kB
次に、Jettyサービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。
systemctl start jetty9
systemctl enable jetty9
次のコマンドを使用して、桟橋のステータスを確認することもできます。
systemctl status jetty9
次の出力が得られるはずです:
? jetty9.service - Jetty 9 Web Application Server Loaded: loaded (/lib/systemd/system/jetty9.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-09-28 02:47:55 EDT; 1min 11s ago Docs: https://www.eclipse.org/jetty/documentation/current/ Main PID: 1658 (java) Tasks: 24 (limit: 1138) Memory: 69.9M CGroup: /system.slice/jetty9.service ??1658 /usr/bin/java -Djetty.home=/usr/share/jetty9 -Djetty.base=/usr/share/jetty9 -Djava.io.tmpdir=/tmp -jar /usr/share/jetty9/star Sep 28 02:48:12 debian jetty9[1658]: 2019-09-28 02:48:12.492:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///var/lib/jetty9/we Sep 28 02:48:14 debian jetty9[1658]: 2019-09-28 02:48:14.079:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=16ms Sep 28 02:48:14 debian jetty9[1658]: 2019-09-28 02:48:14.602:INFO:oejshC.root:main: Warning: No org.apache.tomcat.JarScanner set in ServletCont Sep 28 02:48:15 debian jetty9[1658]: 2019-09-28 02:48:15.796:INFO:oajs.TldScanner:main: At least one JAR was scanned for TLDs yet contained no Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.312:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0 Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.315:INFO:oejs.session:main: No SessionScavenger set, using defaults Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.318:INFO:oejs.session:main: node0 Scavenging every 600000ms Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.587:INFO:oejsh.ContextHandler:main: Started [email protected]{root,/,file Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.836:INFO:oejs.AbstractConnector:main: Started [email protected]{HTTP/1.1,[http/ Sep 28 02:48:16 debian jetty9[1658]: 2019-09-28 02:48:16.843:INFO:oejs.Server:main: Started @21109ms lines 1-20/20 (END)
NginxをJettyのリバースプロキシとして構成する
デフォルトでは、Jettyはポート8080で実行されます。したがって、ポート80から8080にリクエストを転送するには、Nginxをリバースプロキシとして構成する必要があります。
これを行うには、最初に次のコマンドを使用してNginxWebサーバーをインストールします。
apt-get install nginx -y
次に、次のコマンドを使用して、Jettyの新しい仮想ホスト構成ファイルを作成します。
nano /etc/nginx/sites-available/jetty.conf
次の行を追加します:
upstream jetty { server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5; } server { listen 80; server_name example.com; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_pass http://jetty/; } }
終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用して、構文エラーがないかNginxを確認します。
nginx -t
次の出力が表示されます。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
次に、Nginx仮想ホストを有効にし、Nginxサービスを再起動して、新しい構成を適用します。
ln -s /etc/nginx/sites-available/jetty.conf /etc/nginx/sites-enabled/
systemctl restart nginx
次に、Webブラウザーを開き、URLhttp://example.comを入力します。次の画面で、Jettyのデフォルトのダッシュボードにリダイレクトされます。
おめでとう!これで、Debian10にNginxを使用してJettyを正常にインストールおよび構成できました。これでJettyを使用してJavaアプリケーションを簡単にデプロイできます。