Debian 11においてNginxをリバースプロキシとして使用したGlassFish Javaサーバーのインストール方法
Debian 11においてNginxをリバースプロキシとして使用したGlassFish Javaサーバーのインストール方法
このチュートリアルはこれらのOSバージョンのために存在します
- Debian 11 (Bullseye)
- Debian 10 (バスター)
このページで
- 前提条件
- Javaをインストールする
- Glassfishをダウンロード
- GlassfishのためのSystemdサービスファイルを作成する
- Glassfish管理者パスワードを設定する
- GlassFishウェブインターフェースにアクセスする
- GlassfishのリバースプロキシとしてNginxを構成する
- 結論
GlassFishは、Javaアプリケーションのデプロイに使用されるオープンソースのアプリケーションサーバーです。JPA、JavaServer Faces、JMS、RMIなど、さまざまなJavaベースの技術をサポートしています。また、多くの他のJavaベースの技術もサポートしています。GlassFishは、Javaアプリケーションおよびそのコンポーネントを管理するためのウェブベースとコマンドラインインターフェースを提供します。GlassFishを使用すると、レガシー技術と簡単に統合できるポータブルでスケーラブルなアプリケーションを作成できます。
このチュートリアルでは、Debian 11 に Nginx をリバースプロキシとして使用して Glassfish サーバーをインストールする方法をお教えします。
前提条件
- Debian 11を実行しているサーバー。
- サーバーIPにポイントされた有効なドメイン名。
- サーバーにはルートパスワードが設定されています。
Javaをインストールする
GlassfishはJavaベースのアプリケーションソフトウェアであるため、サーバーにJavaをインストールする必要があります。もしインストールされていない場合は、以下のコマンドを実行してインストールできます:
apt-get install default-jdk unzip -yJavaがインストールされたら、以下のコマンドを使用してJavaのインストールを確認できます:
java --version次の出力が得られます:
openjdk 11.0.13 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)
完了したら、次のステップに進むことができます。
Glassfishをダウンロード
まず、Eclipseのウェブサイトから最新バージョンのGlassfishをダウンロードする必要があります。以下に示すように、wgetコマンドを使用してダウンロードできます:
wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zipダウンロードが完了したら、ダウンロードしたファイルを /opt ディレクトリに抽出します:
unzip glassfish-6.1.0.zip -d /opt/完了したら、次のステップに進むことができます。
GlassfishのためのSystemdサービスファイルを作成する
次に、Glassfishサービスを管理するためのsystemdサービスファイルを作成する必要があります。以下のコマンドを使用して作成できます:
nano /usr/lib/systemd/system/glassfish.service次の行を追加してください:
[Unit]
Description = GlassFish Server v6.1.0
After = syslog.target network.target
[Service]
User = root
ExecStart = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain
ExecStop = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar stop-domain
ExecReload = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar restart-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 v6.1.0
Loaded: loaded (/lib/systemd/system/glassfish.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2021-11-07 04:56:16 UTC; 8s ago
Process: 6018 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=exited, status=0/SUC>
Main PID: 6037 (java)
Tasks: 91 (limit: 4679)
Memory: 343.0M
CPU: 13.299s
CGroup: /system.slice/glassfish.service
??6037 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /opt/glassfish6/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOp>
Nov 07 04:56:10 debian11 systemd[1]: Starting GlassFish Server v6.1.0...
Nov 07 04:56:16 debian11 java[6018]: Waiting for domain1 to start .....
Nov 07 04:56:16 debian11 java[6018]: Successfully started the domain : domain1
Nov 07 04:56:16 debian11 java[6018]: domain Location: /opt/glassfish6/glassfish/domains/domain1
Nov 07 04:56:16 debian11 java[6018]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log
Nov 07 04:56:16 debian11 java[6018]: Admin Port: 4848
Nov 07 04:56:16 debian11 java[6018]: Command start-domain executed successfully.
Nov 07 04:56:16 debian11 systemd[1]: Started GlassFish Server v6.1.0.
完了したら、次のステップに進むことができます。
Glassfish管理者パスワードを設定する
デフォルトでは、Glassfishはパスワードなしでアクセス可能です。したがって、管理者パスワードを設定して保護するのが良いアイデアです。次のコマンドを実行することでそれができます:
/opt/glassfish6/bin/asadmin --port 4848 change-admin-password以下のように管理者ユーザー名を提供するよう求められます:
Enter admin user name [default: admin]>admin
デフォルトの管理者ユーザー名を入力し、Enterキーを押してください。既存の管理者パスワードの入力を求められます:
Enter the admin password>
エンターキーを押してください。次に、以下のように新しい管理者パスワードを設定するように求められます:
安全なパスワードを設定してEnterを押してください。次の出力が得られます:
Command change-admin-password executed successfully.
次に、GlassfishでHTTPSを有効にすることも推奨されます。次のコマンドを実行することでこれを行うことができます:
/opt/glassfish6/bin/asadmin --port 4848 enable-secure-adminHTTPSを有効にするために、管理者のユーザー名とパスワードの提供を求められます。
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ウェブインターフェースにアクセスする
この時点で、Glassfishはインストールされており、動作しています。デフォルトでは、GlassfishのWebインターフェースはポート8080でリッスンし、管理インターフェースはポート4848でリッスンします。まず、次のURLを使用してGlassfishのWebインターフェースにアクセスしてください:http://your-server-ip:8080。次のページが表示されるはずです。
次に、URL https://your-server-ip:4848 を使用して Glassfish 管理インターフェースにアクセスします。Glassfish ログインページにリダイレクトされます:
管理者のユーザー名とパスワードを入力し、ログインボタンをクリックしてください。次のページにGlassfishの管理インターフェースが表示されるはずです:
左ペインのサーバーをクリックすると、次の画面が表示されるはずです。
ここから、Glassfishのログを再起動、停止、表示できます。
左ペインのノードをクリックすると、次の画面にGlassfishノード情報が表示されるはずです:
GlassfishのリバースプロキシとしてNginxを構成する
Glassfishウェブインターフェースにアクセスするために、Nginxをリバースプロキシとして設定するのは良いアイデアです。これにより、ポート8080を使用せずにアプリケーションにアクセスできます。
そうするために、まず次のコマンドでNginxパッケージをインストールします:
apt-get install nginx -yインストールが完了したら、以下のコマンドを使用してNginxの仮想ホスト設定ファイルを作成します:
nano /etc/nginx/conf.d/glassfish.conf次の行を追加してください:
upstream glassfish {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name glassfish.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サービスを再起動します:
systemctl restart nginx次のコマンドを使ってNginxのステータスを確認することもできます。
systemctl status nginx次の出力を得るべきです:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-11-07 05:02:58 UTC; 22s ago
Docs: man:nginx(8)
Process: 6790 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 6791 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 6873 (nginx)
Tasks: 3 (limit: 4679)
Memory: 5.1M
CPU: 53ms
CGroup: /system.slice/nginx.service
??6873 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??6875 nginx: worker process
??6876 nginx: worker process
Nov 07 05:02:58 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 07 05:02:58 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
この時点で、Nginxはインストールされ、Glassfishウェブインターフェースを提供するように構成されています。今、URL http://glassfish.example.com を使用してGlassfishウェブインターフェースにアクセスできます。
結論
おめでとうございます!あなたはDebian 11上にNginxをリバースプロキシとして使用したGlassfishサーバーを正常にインストールしました。これで、Glassfishサーバー上にJavaベースのアプリケーションをデプロイできます。質問があれば気軽にお尋ねください。




