LoginSignup
0
0

  ・それでは前辺につづき、GroupSessionののインストール等を続けます。

◎GroupSssionのデータをダウンロードして、指定されたディレクトリにコピーします。
Screenshot 2023-10-17 at 14-35-43 無料版ダウンロード|無料グループウェア GroupSession.png

  ・細かすぎる説明は記述しませんが、公式サイトより最新版データをダウンロードします。

   ちなみに、この記事の書込はRaspberry pi4(8GB)で行っています。
   ターミナルで入力したコマンドなどを確認しながら、コピペ等でQiitaにUPしております。
   MacBookAir M1もあるけど、せっっかく設定した「マシン」なので、使ってみることに
しました。
   YouTube見ながら書き込みするなど、デスクトップマシンとして活用しつつ、バックグラウンドでは誰も使わないグループウェアが稼働していますww

  ・それでは進めます。
   # systemctl stop tomcat9.service

  ・上記のように、一度tomcatを停止させます。![Screenshot 2023-10-17 at 14-49-25 GROUPSESSION ログイン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3578597/5c13d794-e77a-f09c-303a-747ba5886912.png)


   # cd /
   # cd /home/******/Downloads/  ← ******はユーザ名です
  ・この段階でダウンロードしたファイルが確認できると思います。
   ファイル名は、「gsession.war」です。

   # cp /home/******/Downloads/gsession.war /opt/  ← ******はユーザ名です
   # cd /opt/tomcat9/webapps/
   # ls
  ・上記操作で、/opt/tomcat9/webapps/に「gsession.war」がコピーされます。

   # systemctl start tomcat9.service

  ・この状態で何もエラー等がなければ、ブラウザからアクセスします。

  ・アクセス先は、http://localhost:8080/gsessionまたは他のマシンはスマホであれば、http://192.***.+++.@@@:8080/gsessionですね。

   warファイルの展開に時間がかかるようですが、少し待っているとグループセッションの画面が確認できると思います。
   左上に「Now loading...」が現れ、少ししてから以下が確認できますね。
Screenshot 2023-10-17 at 14-49-25 GROUPSESSION ログイン.png

 ・さて、いかがでしょうか。
  ID、PWは初期設定で「admin」でありますので、どうぞお試しください。

◎GroupSessionを使う際、ローカル内だけであればポート番号(:8080)があっても良いかもしれませんが、見た目が悪いのでポート番号を不要とするようnginxのインストール、リバースプロキシの設定に進みます。

  ・関係ないと思われますが、一応tomcatを停止させます。
   # systemctl stop tomcat9.service

   # apt-get install -y nginx

  ・nginxのconfファイルを編集するため、バックアップします。 同一ディレクトリにバックアップしました。
   # cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf-bak

  ・元のファイルを削除し、新たに作成します。
   # rm -rf /etc/nginx/nginx.conf    削除です。

   # rm -rf /etc/nginx/nginx.conf    新規作成します。

  ・以下の内容をコピペしてください。

   user www-data;
   worker_processes auto;
   pid /run/nginx.pid;
   include /etc/nginx/modules-enabled/*.conf;

   events {
           worker_connections 768;
           # multi_accept on;
   }

   http {
           ##
           # Basic Settings

   server {
     listen 80;
     server_name localhost;

     root /opt/tomcat9;

   #  access_log /var/log/nginx/tomcat_access.log;
   #  error_log /var/log/nginx/tomcat_error.log;

     location / {
       proxy_pass http://127.0.0.1:8080/;
   }

   }

  ・ctrl+oで上書き、ctrl+xで抜けてください。

  ・この記述後、私はラズパイ自体を再起動させたのち、ポート番号:8080がない状態でアクセスして確認しました。

◎次は一気にssl対応させます。
  ・以下、コマンドで進めてください。

  ・nginxとtomcatを一応止めます

   # systemctl stop nginx
   # systemctl stop tomcat9.service

  ・ssl関係を最新版へアップデートさせます。
   # apt-get update && sudo apt upgrade openssl
   # openssl genrsa -out /etc/nginx/ssl/server.key 2048
   # openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr
   # openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt

  ・このタイミングだったかな? オレオレ証明書の登録内容をきかれるので、適当に登録します。 ちなみに今回のssl対応は、第三者の証明期間ではなく、自己CAで行います。

  ・必要なファイルが作成されているか確認します。
   # ls -l /etc/nginx/ssl/

  ・引き続き、nginxとtomcatのリバースプロキシの設定に進みます。
   前述したポート番号不要設定時に新規作成したconfファイルに加筆します。
   
   # nano /etc/nginx/nginx.conf

  ※最終的には以下の記述を行っています。


   user www-data;
   worker_processes auto;
   pid /run/nginx.pid;
   include /etc/nginx/modules-enabled/*.conf;

   events {
           worker_connections 768;
           # multi_accept on;
   }

   http {
        ##
        # Basic Settings

   server {
     listen 80;
     server_name localhost;

     root /opt/tomcat9;

   #  access_log /var/log/nginx/tomcat_access.log;
   #  error_log /var/log/nginx/tomcat_error.log;

     location / {
       proxy_pass http://127.0.0.1:8080/;
     }

   }

   #HTTPS
   server {
     listen 443 ssl;
     server_name localhost;

     root /opt/tomcat9;

       ssl_certificate     /etc/nginx/ssl/server.crt;
       ssl_certificate_key /etc/nginx/ssl/server.key;

   #  access_log /var/log/nginx/tomcat_access.log;
   #  error_log /var/log/nginx/tomcat_error.log;

     location / {
       proxy_pass http://127.0.0.1:58080/;
                }
          } 
   }

◎nginxだけではなく、tomcat側の設定ふぁいるにも加筆します。
・以下、コマンド操作を進めます。 必要であれば、xmlファイルをバックアップ願います。

   # nano /opt/tomcat9/conf/server.xml
・オリジナルが以下の記載です。

   <Service name="Catalina">

       <!--The connectors can use a shared executor, you can define one or more n>
       <!--
       <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
           maxThreads="150" minSpareThreads="4"/>
       -->


       <!-- A "Connector" represents an endpoint by which requests are received
            and responses are returned. Documentation at :
            Java HTTP Connector: /docs/config/http.html
            Java AJP  Connector: /docs/config/ajp.html
            APR (HTTP/AJP) Connector: /docs/apr.html
            Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
       -->
       <Connector port="8080" protocol="HTTP/1.1"
                  connectionTimeout="20000"
                  redirectPort="8443"
                  maxParameterCount="1000"
                  />
       <!-- A "Connector" using the shared thread pool-->
       <!--
       <Connector executor="tomcatThreadPool"
                  port="8080" protocol="HTTP/1.1"
                  connectionTimeout="20000"
                  redirectPort="8443"
                  maxParameterCount="1000"

  ・追記は中間の7行と後半2行です。
   以下は中間の7行を追記した状態です。

     <Service name="Catalina">

       <!--The connectors can use a shared executor, you can define one or more n>
       <!--
       <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
           maxThreads="150" minSpareThreads="4"/>
       -->


       <!-- A "Connector" represents an endpoint by which requests are received
            and responses are returned. Documentation at :
            Java HTTP Connector: /docs/config/http.html
            Java AJP  Connector: /docs/config/ajp.html
            APR (HTTP/AJP) Connector: /docs/apr.html
            Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
       -->
       <Connector port="8080" protocol="HTTP/1.1"
                  connectionTimeout="20000"
                  redirectPort="8443"
                  maxParameterCount="1000"
                  />

     ※以下が追記の7行です!!!

           <Connector port="58080" protocol="HTTP/1.1"     
                  proxyPort="443" redirectPort="443"
                  scheme="https"
                  secure="true"
                  connectionTimeout="20000"
                  maxThreads="450"
                  URIEncoding="UTF-8" />



       <!-- A "Connector" using the shared thread pool-->
       <!--
       <Connector executor="tomcatThreadPool"
                  port="8080" protocol="HTTP/1.1"
                  connectionTimeout="20000"
                  redirectPort="8443"
                  maxParameterCount="1000"

  ・追記行をわかりやすく、行間を開けています。
   次に後半の2行です。

          <Valve className="org.apache.catalina.valves.AccessLogValve" directory>
                  prefix="localhost_access_log" suffix=".txt"
                  pattern="%h %l %u %t &quot;%r&quot; %s %b" />


    ※以下の2行です
           <Valve className="org.apache.catalina.valves.RemoteIpValve"
                      protocolHeader="x-forwarded-proto"/>



         </Host>
       </Engine>
     </Service>
   </Server>

  ・上記そのままコピペする場合、「※」ではなく、#にしていただくことでコメントアウトできます。

  ・上記設定後ファイルを研修後、再起動させてブラウザからアクセスします。

   当然、「https://localhost/gsession」となります。
   ブラウザによっては危険だよと促されますが、そのまま進めて頂いて構いません。
   FireFoxでアクセスすると、アドレスバーの部分はsslの記載があるものの、認証が適切ではないためか、横線で消されています。
   iPhoneのsafariでアクセスすると、鍵マークがしっかりで確認できますが、当然「危険なサイトだけど閲覧するの?」と確認が入ります。

さて、いかがでしょうか。

過去、どうしてもグループウェアを稼働させる必要があったため、32bitOSで稼働させていたのですが、この頃は64bitOSが主流でありますので、改めて設定してみました。

この他、ルータのポート開放を行ってからグローバルIPでアクセス可能を確認しました。

その後、DDNS Nowに登録し、ドメイン名でのアクセスも確認しています。

一応、サーバとしているので、clamavのインストール、日本語環境の整備を行い、不要アプリケーションの削除、不要デーモンの削除を行いましたのち、本記述となっています。

費用をかけずにグループウェアを稼働さ世帯などの需要に答えられると嬉しいです。

本物のサーバ構築者からすると「あまりにもチープな内容」になるかもしれませんが、何かしらの参考になれば最和であるとともに、自身のための備忘録として残しました。

これまでの設定で参考にしたQiitaページとか色々ありますが、アドレスが不明であるのでそれら記載は失礼します。 思い出したら都度追記したいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0