6. Apache, Nginxの導入

この章では、Senju/QAのWEBサーバーとして利用されるApache(Windows Serverで稼働する場合)あるいはNginx(Linuxで稼働する場合)をインストールするための手順について説明します。

6.1. Apacheの導入

6.1.1. 対象バージョン

Windows版 Senju/QA アプリケーションサーバーではApacheをフロントWEBサーバーとして使用します。

注釈

サポート対象となるApacheのバージョンについては リリースノート を参照してください。

注釈

例として手順を説明するバージョンは開発時点のバージョンになります。 インストール時には、セキュリティ上の観点を考慮してその時点での最適なバージョンを導入してください。

6.1.2. インストールの流れ

  1. インストール用のzipファイルを入手して、インストールするサーバーの任意のフォルダに格納します。

    ダウンロードURL:
    対象ファイル:
    • httpd-2.4.48-win64-VS16.zip

    (ここでは httpd-2.4.48-win64-VS16.zipC:\Temp 配下に格納した場合の手順を例として説明します。ほかのフォルダに格納した場合は適宜各コマンドで指定するパスを変更してください。)

  2. インストールするサーバーに管理者権限のアカウントでログインします。

  3. zipファイルをCドライブ直下に解凍します。
    PS C:\> Expand-Archive -Path C:\Temp\httpd-2.4.48-win64-VS16.zip -Destination C:\
    
  4. 以下のコマンドを実行し、Windowsのサービスとして登録します。
    PS C:\> cd C:\Apache24\bin
    PS C:\Apache24\bin> .\httpd.exe -k install
    
  5. Windowsのサービスに登録されたことを確認します。
    PS C:\Apache24\bin> Get-Service -Name 'Apache2.4'
    
    Status   Name               DisplayName
    ------   ----               -----------
    Running  Apache2.4          Apache2.4
    

    注釈

    Windows管理ツール[サービス]から確認することもできます。
    Apache2.4 が追加されたことを確認します。

6.1.3. Apacheの設定

SSL(https)の利用状況によって、設定方法が変わりますので注意してください。

6.1.3.1. SSL(https)を利用しない場合

  1. Apacheの設定ファイルを編集します。
    対象ファイル:
    • C:\Apache24\conf\httpd.conf

    1. ポート番号を 8000 に変更します。
      #Listen 80
      Listen 8000
      
    2. サーバー名を変更します。
      #ServerName www.example.com:80
      ServerName senjuqa01:8000
      
  2. Apacheサービスを開始します。
    PS C:\> Start-Service -Name 'Apache2.4'
    

    注釈

    Windows管理ツール[サービス]から開始することもできます。
    Apache2.4 を右クリックし、コンテキストメニューの[開始]をクリックします。

6.1.3.2. SSL(https)を利用する場合

注釈

SSL(https)を利用する場合は事前にサーバー証明書および秘密鍵を準備する必要があります。

  1. SSL用サーバー証明書および秘密鍵を配置します。
    1. 事前に準備したサーバー証明書および秘密鍵のファイルを C:\Apache24\conf 配下に格納します。
      サーバー証明書: C:\Apache24\confserver.crt
      秘密鍵: C:\Apache24\confserver.key
  2. Apacheの設定ファイルを編集します。
    対象ファイル:
    • C:\Apache24\conf\httpd.conf

    1. ポート番号を無効にします。
      #Listen 80
      
    2. SSLモジュールを有効にします。
      #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
      #LoadModule ssl_module modules/mod_ssl.so
      LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
      LoadModule ssl_module modules/mod_ssl.so
      
    3. SSL設定ファイル httpd-ssl.conf を有効にします。
      #Include conf/extra/httpd-ssl.conf
      Include conf/extra/httpd-ssl.conf
      
  3. ApacheのSSL設定ファイルを編集します。
    対象ファイル:
    • C:\Apache24\conf\extra\httpd-ssl.conf

    1. ポート番号を 8000 に変更します。
      #Listen 443
      Listen 8000
      
    2. サーバー名を変更します。
      #ServerName www.example.com:443
      ServerName senjuqa01:8000
      
    3. CGIの実行を許可します。
      #<Directory "${SRVROOT}/cgi-bin">
      #    SSLOptions +StdEnvVars
      #</Directory>
      
  4. Apacheサービスを開始します。
    PS C:\> Start-Service -Name 'Apache2.4'
    

    注釈

    Windows管理ツール[サービス]から開始することもできます。
    Apache2.4 を右クリックし、コンテキストメニューの[開始]をクリックします。

6.1.4. インストール確認

6.1.4.1. SSL(https)を利用しない場合

Invoke-WebRequestコマンドレットを使用して、Apacheが稼働していることを確認します。
PS C:\> Invoke-WebRequest -Uri 'http://senjuqa01:8000'

StatusCode        : 200
StatusDescription : OK
Content           : <html><body><h1>It works!</h1></body></html>

RawContent        : HTTP/1.1 200 OK
                    Accept-Ranges: bytes
                    Content-Length: 45
                    Content-Type: text/html
                    Date: Thu, 23 Dec 2021 09:17:51 GMT
                    ETag: "2d-432a5e4a73a80"
                    Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
                    Server:...
Forms             : {}
Headers           : {[Accept-Ranges, bytes], [Content-Length, 45], [Content-Type, text/html], [Date, Thu, 23 Dec 2021 09:17:51 GMT]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 45

6.1.4.2. SSL(https)を利用する場合

Invoke-WebRequestコマンドレットを使用して、Apacheが稼働していることを確認します。
PS C:\> Invoke-WebRequest -Uri 'https://senjuqa01:8000'

StatusCode        : 200
StatusDescription : OK
Content           : <html><body><h1>It works!</h1></body></html>

RawContent        : HTTP/1.1 200 OK
                    Accept-Ranges: bytes
                    Content-Length: 45
                    Content-Type: text/html
                    Date: Thu, 23 Dec 2021 09:17:51 GMT
                    ETag: "2d-432a5e4a73a80"
                    Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
                    Server:...
Forms             : {}
Headers           : {[Accept-Ranges, bytes], [Content-Length, 45], [Content-Type, text/html], [Date, Thu, 23 Dec 2021 09:17:51 GMT]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 45

6.2. Nginxの導入

6.2.1. 対象バージョン

Senju/QAのWEBサーバーとしてNginxを利用する場合のインストール手順について説明します。

注釈

Windows Server で稼働する場合はNginxの代わりに、ApacheをWEBサーバーとして利用してください。

6.2.2. インストールの流れ

  1. インストール用のrpmファイルを入手し、インストールするサーバーの任意のディレクトリに格納します。
    ダウンロードURL:
    ファイル名:
    • nginx-1.20.2-1.el8.ngx.x86_64.rpm

    (ここでは /tmp/ 配下に格納した場合の手順を例として説明します。ほかのディレクトリに格納した場合は適宜各コマンドで指定するパスを変更してください。)

  2. インストールするサーバーに管理者権限のアカウントでログインします。

  3. rpmコマンドでパッケージをインストールします。
    # rpm -ivh /tmp/nginx-[0-9]*el8*.rpm
    
  4. nginxサービスを有効化します。
    # systemctl enable nginx
    

6.2.3. Nginxの設定

NginxについてTomcatと通信させるにあたり設定を変更します。 SSL(https)の利用状況によって、設定方法が変わりますので注意してください。

6.2.3.1. SSL(https)を利用しない場合

  1. Nginxの設定ファイルを作成します。
    1. デフォルトの設定ファイルを削除します。
      # rm -f /etc/nginx/conf.d/*
      
    2. NginxのSenju/QA用設定ファイルを新規に作成します。
      # touch  /etc/nginx/conf.d/senjuqa.conf
      
    3. /etc/nginx/conf.d/senjuqa.conf を以下のように編集して保存します。

      upstream django {
          server unix:///opt/senjuqa/senjuqa.sock;
      }
      
      server {
          listen      80;
      
          server_name _;
      
          client_max_body_size 100M;
      
          location /static {
              alias /opt/senjuqa/static;
          }
      
          location / {
              uwsgi_pass  django;
              include     /etc/nginx/uwsgi_params;
          }
      }
      
  2. Nginxを起動します。
    # systemctl start nginx
    

6.2.3.2. SSL(https)を利用する場合

注釈

SSL(https)を利用する場合は事前にサーバー証明書および秘密鍵を準備する必要があります。

  1. SSL用サーバー証明書および秘密鍵を配置します。
    1. サーバー証明書および秘密鍵を格納するためのフォルダー /etc/nginx/ssl を作成します。
      # mkdir -p /etc/nginx/ssl
      
    2. 事前に準備したサーバー証明書および秘密鍵のファイルを /etc/nginx/ssl 配下に格納します。
      サーバー証明書: /etc/nginx/ssl/server.crt
      秘密鍵: /etc/nginx/ssl/server.key
  2. Nginxの設定ファイルを作成します。
    1. デフォルトの設定ファイル /etc/nginx/conf.d/default.conf を削除します。
      # rm -f  /etc/nginx/conf.d/default.conf
      
    2. NginxのSenju/QA用設定ファイルを新規に作成します。
      # touch  /etc/nginx/conf.d/senjuqa.conf
      
    3. /etc/nginx/conf.d/senjuqa.conf を以下のように編集して保存します。

      upstream django {
          server unix:///opt/senjuqa/senjuqa.sock;
      }
      
      server {
          listen 80;
          server_name _;
          return 301 https://$host$request_uri;
      }
      
      server {
          listen 443 ssl;
      
          server_name _;
      
          ssl_certificate      /etc/nginx/ssl/server.crt;
          ssl_certificate_key  /etc/nginx/ssl/server.key;
          ssl_protocols     TLSv1.2;
      
          client_max_body_size 100M;
      
          location /static {
              alias /opt/senjuqa/static;
          }
      
          location / {
              uwsgi_pass  django;
              include     /etc/nginx/uwsgi_params;
          }
      }
      
  3. Nginxを起動します。
    # systemctl start nginx