GlassFishは、EclipseFoundationによって開発されたJavaプラットフォームのオープンソースで世界初の実装です。これは軽量のアプリケーションサーバーであり、Enterprise JavaBeans、JPA、JavaServer Faces、JMSなどのさまざまなJavaベースのテクノロジーをサポートします。 GlassFishには、更新およびアドオンコンポーネント用の更新ツールを備えたシンプルで使いやすい管理コンソールが付属しています。
このチュートリアルでは、リバースプロキシとしてNginxを使用してDebian10にGlassFishをインストールする方法を説明します。
- Debian10を実行しているサーバー。
- サーバーにルートパスワードが設定されています。
開始する前に、システムを最新バージョンに更新する必要があります。これを行うには、次のコマンドを実行します。
apt-get update -y
apt-get upgrade -y
サーバーが更新されたら、サーバーを再起動して変更を適用します。
Javaのインストール
GlassFishでは、Javaバージョン8がサーバーにインストールされている必要があります。したがって、システムに他のJavaバージョンがインストールされている場合は、Javaを削除する必要があります。
次のコマンドを使用して、Javaバージョン11を削除できます。
apt-get remove openjdk-11-jre-headless
次に、公式WebサイトからJavaバージョン8をダウンロードする必要があります。ダウンロードが完了したら、次のコマンドを使用して、ダウンロードしたファイルを/ usr / lib/jvmディレクトリに抽出します。
mkdir /usr/lib/jvm/
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm/
次に、次のコマンドを使用してデフォルトのJavaバージョンを設定します。
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_221/bin/java 1
次の出力が得られるはずです:
update-alternatives: using /usr/lib/jvm/jdk1.8.0_221/bin/java to provide /usr/bin/java (java) in auto mode
これで、次のコマンドを使用してJavaバージョンを確認できます。
java -version
次の出力が表示されます。
java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
GlassFishをインストールします
まず、次のコマンドを使用して必要なパッケージをインストールします。
apt-get install wget unzip -y
次に、次のコマンドを使用して最新バージョンのGlassFishをダウンロードします。
wget http://download.oracle.com/glassfish/5.0.1/nightly/latest-glassfish.zip
ダウンロードが完了したら、次のコマンドを使用して、ダウンロードしたファイルを/optディレクトリに抽出します。
unzip latest-glassfish.zip -d /opt/
完了したら、次のステップに進むことができます。
GlassFishサービスを作成する
次に、GlassFishサービスを管理するためのsystemdサービスファイルを作成できます。次のコマンドで作成できます:
nano /etc/systemd/system/glassfish.service
次のコンテンツを追加します:
[Unit] Description = GlassFish Server v5.0 After = syslog.target network.target [Service] ExecStart=/opt/glassfish5/bin/asadmin start-domain ExecReload=/opt/glassfish5/bin/asadmin restart-domain ExecStop=/opt/glassfish5/bin/asadmin stop-domain Type = forking [Install] WantedBy = multi-user.target
ファイルを保存して閉じます。次に、次のコマンドを使用してsystemdデーモンをリロードします。
systemctl daemon-reload
次に、GlassFishサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。
systemctl start glassfish
systemctl enable glassfish
次のコマンドを使用して、GlassFishサービスのステータスを確認できるようになりました。
systemctl status glassfish
次の出力が得られるはずです:
? glassfish.service - GlassFish Server v5.0 Loaded: loaded (/etc/systemd/system/glassfish.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2019-09-19 04:54:25 EDT; 42s ago Process: 15205 ExecStart=/opt/glassfish5/bin/asadmin start-domain (code=exited, status=0/SUCCESS) Main PID: 15217 (java) Tasks: 90 (limit: 1138) Memory: 271.7M CGroup: /system.slice/glassfish.service ??15217 /usr/lib/jvm/jdk1.8.0_221/bin/java -cp /opt/glassfish5/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOptions -XX:Ne Sep 19 04:53:42 debian systemd[1]: Starting GlassFish Server v5.0... Sep 19 04:54:24 debian asadmin[15205]: Waiting for domain1 to start ................................. Sep 19 04:54:24 debian asadmin[15205]: Successfully started the domain : domain1 Sep 19 04:54:24 debian asadmin[15205]: domain Location: /opt/glassfish5/glassfish/domains/domain1 Sep 19 04:54:24 debian asadmin[15205]: Log File: /opt/glassfish5/glassfish/domains/domain1/logs/server.log Sep 19 04:54:24 debian asadmin[15205]: Admin Port: 4848 Sep 19 04:54:24 debian asadmin[15205]: Command start-domain executed successfully. Sep 19 04:54:25 debian systemd[1]: Started GlassFish Server v5.0. lines 1-18/18 (END)
GlassFish管理コンソールを有効にする
デフォルトでは、GlassFish管理コンソールのパスワードは設定されていません。そのため、管理者パスワードを更新する必要があります。
次のコマンドを実行して、管理者パスワードを設定します。
/opt/glassfish5/bin/asadmin change-admin-password
希望のパスワードを入力して、Enterキーを押します。パスワードを設定すると、次の出力が表示されます。
Enter admin user name [default: admin]>admin Enter the admin password> Enter the new admin password> Enter the new admin password again> Command change-admin-password executed successfully.
次に、セキュア管理機能を有効にする必要があります。次のコマンドで実行できます:
/opt/glassfish5/bin/asadmin enable-secure-admin
管理者のユーザー名とパスワードを入力し、Enterキーを押して、以下に示すように安全な管理者を有効にします。
Enter admin user name> admin Enter admin password for user "admin"> You must restart all running servers for the change in secure admin to take effect. Command enable-secure-admin executed successfully.
次に、GlassFishサービスを再起動して、構成の変更を適用します。
systemctl restart glassfish
デフォルトでは、GlassFishアプリケーションはポート8080で実行されます。URLhttp:// your-server-ip:8080にアクセスしてアクセスできます。次のページが表示されます:
GlassFish管理コンソールはポート4848で実行されます。URLhttp:// your-server-ip:4848にアクセスしてアクセスできます。 GlassFishログインページが表示されます:
管理者のユーザー名とパスワードを入力し、ログインをクリックします ボタン。次の画面にGlassFish管理コンソールが表示されます。
GlassFishにアプリケーションをデプロイする
これでGlassFishがインストールおよび構成されたので、サンプルアプリケーションをGlassFishにデプロイします。
まず、次のコマンドを使用してhello.warアプリケーションをダウンロードします。
wget https://github.com/dmatej/Glassfish/raw/master/v2/www/downloads/quickstart/hello.war
次に、次のコマンドを使用してhello.warアプリケーションをデプロイします。
/opt/glassfish5/bin/asadmin deploy hello.war
次の出力が表示されます。
Version: V3 Subject: CN=localhost, OU=GlassFish, O=Oracle Corporation, L=Santa Clara, ST=California, C=US Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11 Key: Sun RSA public key, 2048 bits modulus: 26796330640308027923768800042502020134808966576745098232029910481655545436468207928921434907495986430069072245547607053010428717755932187048623252153613041636091429700133899537566912806297788375081359516836091002133743138757261794690981737280330851500902934286405305506594303276580413684625941149729611614458782091187522283499926880436357851913036137048969953439207474630152049712806975982901461106170366207997764866053158318707816771263261147284707875045634066423002500565550480728681743613266266732299458152358213914375115269066441015633123820868476095174900081535873996509058837674720310526766610294764426209317187 public exponent: 65537 Validity: [From: Tue Jan 15 21:17:50 EST 2019, To: Fri Jan 12 21:17:50 EST 2029] Issuer: CN=localhost, OU=GlassFish, O=Oracle Corporation, L=Santa Clara, ST=California, C=US SerialNumber: [ 3347569f] Certificate Extensions: 1 [1]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: F2 F1 22 14 40 CA 9E 1D 92 3B B6 B9 09 D1 27 E7 .."[email protected];....'. 0010: 50 1A 37 4D P.7M ] ] ] Algorithm: [SHA256withRSA] Signature: 0000: C7 CB 91 D4 9B 39 21 13 B3 48 87 09 85 2E DF B7 .....9!..H...... 0010: F9 E7 52 1B 39 D0 12 55 97 A8 02 8D B9 EC 26 F0 ..R.9..U......&. 0020: A6 8F 29 5B 96 80 71 AA CB C8 EA 83 4F 18 E7 19 ..)[..q.....O... 0030: 26 CF BF 72 B1 E6 23 53 F2 14 CD BA 68 FE 4B 4C &..r..#S....h.KL 0040: BB B1 3E DE D9 EB 6D 96 8C 8F 0D 33 B6 E7 28 F1 ..>...m....3..(. 0050: D5 40 6B BC 01 FF F9 5A 79 9A 96 DA D9 2A 84 99 [email protected]*.. 0060: FA 3A 7A 9D 52 6C C2 D5 E9 DC 98 8B 20 EF 69 99 .:z.Rl...... .i. 0070: E6 FC 1B 0F CA B2 0C 66 BE BB A7 EA 3D DB BB F5 .......f....=... 0080: 88 F1 B4 B1 15 74 FA 9F E0 9A 98 C5 12 A0 60 B4 .....t........`. 0090: 9B 92 19 FD BA 81 20 7F 51 83 E9 22 56 96 9A 40 ...... .Q.."[email protected] 00A0: 2C 27 BB 86 57 7D 2E E9 C5 98 1A 04 A2 C5 FC 17 ,'..W........... 00B0: 6E 8B 31 79 29 A0 A1 22 1A 31 C0 A6 96 7A D4 80 n.1y)..".1...z.. 00C0: 3F 05 26 BB DE D1 2D 74 01 1F 24 EC CE 3B 97 42 ?.&...-t..$..;.B 00D0: 16 E8 16 F1 A4 10 92 0B 8E A5 18 59 BF AA 69 B0 ...........Y..i. 00E0: DB C8 C2 66 5F 5D 2F 3D 4B C7 90 1D C2 24 B1 57 ...f_]/=K....$.W 00F0: 22 02 DA 76 FF 2E B7 C5 E4 E6 50 BD 73 36 AA 8A "..v......P.s6.. ] Do you trust the above certificate [y|N] -->y Enter admin user name> admin Enter admin password for user "admin"> Application deployed with name hello. Command deploy executed successfully.
アプリケーションにアクセスするには、Webブラウザーを開き、URL http:// your-server-ip:8080/helloを入力します。次のページにリダイレクトされます:
Nginxをリバースプロキシとして構成する
次に、ポート80から8080で着信するリクエストをプロキシするためのリバースプロキシとしてNginxを構成する必要があります。
まず、次のコマンドを使用してNginxをインストールします。
apt-get install nginx -y
nginxがインストールされたら、次のコマンドを使用してGlassFishのNginx仮想ホストファイルを作成します。
nano /etc/nginx/sites-available/glassfish.conf
次の行を追加します:
upstream glassfish { 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_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://glassfish/hello/; } }
ファイルを保存して閉じます。次に、次のコマンドを使用して、構文エラーがないか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/glassfish.conf /etc/nginx/sites-enabled/
systemctl restart nginx
これで、URLhttp://example.comにアクセスしてアプリケーションにアクセスできます。
おめでとう!これで、Debian10にリバースプロキシとしてNginxを使用してGlassFishが正常にインストールされました。これでJavaベースのアプリケーションをサーバーに簡単にデプロイできます。