はじめに
『GroupSession』とは、
日本トータルシステム株式会社さんが提供されている、
無料・ユーザ数無制限からスタートできるグループウェアです。
無料版から有料版へのデータ移行も考慮されています。
※1~4 2024.1.23に実施。
※5~7 2024.5.13~2024.6.2に実施。
1. 「AlmaLinux 8」「OpenJDK 11」「Tomcat 9」を選択
$ cat /etc/redhat-release
AlmaLinux release 8.6 (Sky Tiger)
OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz
apache-tomcat-9.0.85.tar.gz
gsession.war
※VPSは「WebARENA Indigo」のCPU:2コア、メモリ2GBを選択しました。
※インストール自体は、このインストールガイドに従えば進められましたが、以下の設定を行わないと運用に入れませんでした。
2. 「.bash_profile」の修正(/root/.bash_profile)
「/root/.bash_profile」全体
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
JAVA_HOME=/usr/local/java/jdk-11.0.22+7
PATH=$JAVA_HOME/bin:$PATH
export JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom' #(2)#
CATALINA_HOME=/usr/local/java/apache-tomcat-9.0.85
PATH=$CATALINA_HOME/bin:$PATH
export CATALINA_OPTS='-Xmx1024m -Xms512m' #(1)#
export PATH
(1)「OutOfMemoryError」への対処
export CATALINA_OPTS='-Xmx1024m -Xms512m'
(インストールガイドから引用抜粋)
Tomcatのメモリ割り当て
「OutOfMemoryError: Java heap space」や「OutOfMemoryError: PermGen space」が発生した場合に参考にして下さい。
設定する値は下記を目安にしてください。
・メモリ最大使用量(-Xmx)搭載メモリの半分程度
・メモリ初期使用量(-Xms)Xmxで指定した数値の半分位
例として搭載メモリが2Gの場合は「-Xmx1024m -Xms512m」になります。
(2)Tomcatの起動が遅い件への対処
export JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom'
起動が遅いなと思い、起動できてから見てみるとcatalina.outに次のログが記録されていましたので、
$ sudo tail -f /usr/local/java/apache-tomcat-9.0.85/logs/catalina.out
︙
org.apache.catalina.startup.Catalina.start Server startup in [37130] milliseconds
以下に記載の対処を行って起動時間の改善をしました。
- (Oracle Help Center) 乱数生成に伴う JVM の遅延の回避
- (DORA BENRI様) JVM処理の遅延対策
- (sbc-web様) Tomcat8の起動が遅い問題の解決方法
3. OS起動時にTomcatを自動起動するようにする(/etc/rc.d/rc.local)
「/etc/rc.d/rc.local」の行末に次の2行を追記する。
source /root/.bash_profile
/usr/local/java/apache-tomcat-9.0.85/bin/startup.sh
4. GroupSessionのシステム時間の同期とタイムゾーンを合わせる
$ sudo timedatectl set-timezone Asia/Tokyo
- (Server World様) AlmaLinux 9 : NTP : クライアントの設定
- (Server World様) AlmaLinux 9 : システムのタイムゾーンを設定する
5. Tomcat と Apache連携
(1)Apacheインストール
- (Server World様) AlmaLinux 9 : Apache httpd : インストール
$ sudo rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux
$ sudo dnf install httpd
$ sudo systemctl enable httpd
$ sudo systemctl restart httpd
・ApacheとTomcatで同じサーバで動作させる場合
(2)Tomcatの設定ファイル(server.xml)を編集
$ sudo vi /usr/local/java/apache-tomcat-9.0.85/conf/server.xml
【変更前】
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443"
maxParameterCount="1000"
/>
-->
【変更後】
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector protocol="AJP/1.3"
port="8009"
redirectPort="8443"
secretRequired="false" />
(3)Apacheの設定ファイル(httpd.conf)を編集
- (nambei-x's blog様) ApacheとTomcatの連携~URLの最後にスラッシュがないときに"Not Found"になる現象の回避方法
$ sudo vi /etc/httpd/conf/httpd.conf
#----------最終行に追記します----------#
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
<Location /gsession >
ProxyPass ajp://localhost:8009/gsession
</Location>
(4)SELinuxを記録のみにする
※SELinuxが有効のままだった際にHTTPが開かず502エラーになってしまいTomcatとの連携がとれていないのかと勘違いした。
- (Server World様) AlmaLinux 9 : SELinux : 動作モードの設定
$ sudo vi /etc/selinux/config
SELINUX=permissive
$ sudo reboot
(補足:現時点TomcatとApacheの再起動コマンドは次の通り → Tomcatはサービス化すべきか。)
$ source /root/.bash_profile
$ bash /usr/local/java/apache-tomcat-9.0.85/bin/shutdown.sh
$ bash /usr/local/java/apache-tomcat-9.0.85/bin/startup.sh
$ sudo systemctl restart httpd
(これはまだ実施していません。)
6. https対応(自己証明書)
- (コラボスタイル Developers様) SAN 付きの自己署名証明書を作る
- (Server World様) AlmaLinux 9 : SSL 証明書を作成 (自己署名)
$ sudo dnf update openssl
$ openssl version
$ cd /etc/pki/tls/certs
# 有効期限が 3650日(約 10 年)の自己署名証明書を作成 #
$ sudo openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,DNS:*.*,DNS:*" -keyout localhost.key -out localhost.cer
$ sudo dnf install mod_ssl
$ sudo systemctl restart httpd
7. https対応(Let's Encryptの証明書を使う)
- (dbit.様) ApacheでLet’s EncryptのSSL更新のために.well-knownだけをアクセス許可する方法。
$ sudo vi /etc/httpd/conf/httpd.conf
(編集後)
$ sudo systemctl restart httpd
- (Server World様) AlmaLinux 9 : SSL 証明書を取得 (Let's Encrypt)
- snapdのインストール
- Certbot クライアントをインストール
- Let's Encryptから証明書の取得
$ sudo certbot certonly --webroot -w /var/www/html -d ${取得済みのFQDN}
- (Server World様) AlmaLinux 9 : Apache httpd : SSL/TLS の設定
- ※前章でmod_sslはインストールしてあるので、
/etc/httpd/conf.d/ssl.conf
の編集(Let's Encryptで取得した証明書のパスに書き換え)から実施。
(編集後)
$ sudo systemctl restart httpd
- ※前章でmod_sslはインストールしてあるので、
(続く)
以上