まえがき
Tomcatより軽量かつ高速なことで有名なJettyをCentOS7上でyumなしで構築するときのメモ
サービスの再起動とかも爆速で終わるので個人的には本当に好き。(Tomcatは下手すりゃ5分とかかかったりする)
前提
- CentOS7.3を想定
- OpenJDKではなく、OracleオリジナルのJDKを使用
- Jettyはyum経由でインストールするのではなく、公式から落としたアーカイブから個別にインストールする
構築作業
下準備
jettyユーザを追加(ユーザ名は何でも良いがわかりやすく)
[root@localhost ]# useradd jetty
[root@localhost ]# passwd jetty
Javaインストール
下記URLからJDKのrpmをダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
※agree押したりなどする必要があるのでwget/curlで持ってくるのが厳しい
落とした.rpmを対象サーバに持っていく
※私の場合は自PCに落として、対象サーバにsftpで持っていきました
[root@localhost ]# yum localinstall jdk-8u111-linux-x64.rpm
# rootとjettyの.bash_profileに export Java_HOME=/usr/Java/jdk1.8.0_111/jre/ を追記
Jettyインストール
jetty公式から落としてきて解凍 => オーナ/グループ変更
以下の例では、/optに配置しているが、どこでもお好みのパスでどうぞ。
[root@localhost ]# wget http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/8.1.21.v20160908/jetty-distribution-8.1.21.v20160908.tar.gz
[root@localhost ]# tar xzvf jetty-distribution-8.1.21.v20160908.tar.gz
[root@localhost ]# mv jetty-distribution-8.1.21.v20160908 /opt/jetty
[root@localhost ]# cd /opt
[root@localhost /opt]# chown -R jetty:jetty jetty
systemdへサービスの登録
yumでは自動的にやってくれるこの辺も手動で作る/登録する必要あり
[root@localhost /opt]# vim /usr/lib/systemd/system/jetty.service
[Unit]
Description=Jetty Application Containar
[Service]
Type=simple
EnvironmentFile=-/opt/jetty/etc/jetty-env
PIDFile=/opt/jetty/jetty.pid
User=jetty
Group=jetty
ExecStart=/opt/jetty/bin/jetty.sh start
ExecReload=/opt/jetty/bin/jetty.sh restart
ExecStop=/optjetty/bin/jetty.sh stop
StandardOutput=null
[Install]
WantedBy=multi-user.target
[root@localhost /opt]# systemctl daemon-reload
firewalld用に新規サービスの登録(オプション)
検証目的などで、firewalldを使用しないならスキップしてOK
[root@localhost ]# vim /usr/lib/firewalld/services/jetty.xml
<service>
<short>WWW (HTTP-jetty)</short>
<description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
<port protocol="tcp" port="8080"/>
</service>
[root@localhost ]# systemctl restart firewalld
[root@localhost ]# firewall-cmd --add-service=jetty --zone=public --permanent
success
[root@localhost ]# systemctl restart firewalld
動作確認
まずはJettyを起動させる。
また、OS起動時に自動的にサービスが立ち上がるようにもしておく。
[root@localhost ]# systemctl enable jetty
[root@localhost ]# systemctl start jetty
[root@localhost ]# systemctl status jetty
[root@localhost ]# ss -nat | grep 8080
LISTEN 0 100 :::8080 :::*
Webブラウザでhttp://[ip_addr]:8080にアクセスして、jettyのトップページが表示されたらOK