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. インストールの流れ¶
インストール用のzipファイルを入手して、インストールするサーバーの任意のフォルダに格納します。
ダウンロードURL:対象ファイル:httpd-2.4.48-win64-VS16.zip
(ここでは
httpd-2.4.48-win64-VS16.zip
をC:\Temp
配下に格納した場合の手順を例として説明します。ほかのフォルダに格納した場合は適宜各コマンドで指定するパスを変更してください。)インストールするサーバーに管理者権限のアカウントでログインします。
- zipファイルをCドライブ直下に解凍します。
PS C:\> Expand-Archive -Path C:\Temp\httpd-2.4.48-win64-VS16.zip -Destination C:\
- 以下のコマンドを実行し、Windowsのサービスとして登録します。
PS C:\> cd C:\Apache24\bin PS C:\Apache24\bin> .\httpd.exe -k install
- 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)を利用しない場合¶
- Apacheの設定ファイルを編集します。
- 対象ファイル:
C:\Apache24\conf\httpd.conf
- ポート番号を 8000 に変更します。
#Listen 80 Listen 8000
- サーバー名を変更します。
#ServerName www.example.com:80 ServerName senjuqa01:8000
- Apacheサービスを開始します。
PS C:\> Start-Service -Name 'Apache2.4'
注釈
Windows管理ツール[サービス]から開始することもできます。Apache2.4
を右クリックし、コンテキストメニューの[開始]をクリックします。
6.1.3.2. SSL(https)を利用する場合¶
注釈
SSL(https)を利用する場合は事前にサーバー証明書および秘密鍵を準備する必要があります。
- SSL用サーバー証明書および秘密鍵を配置します。
- 事前に準備したサーバー証明書および秘密鍵のファイルを
C:\Apache24\conf
配下に格納します。 - サーバー証明書:
C:\Apache24\confserver.crt
秘密鍵:C:\Apache24\confserver.key
- 事前に準備したサーバー証明書および秘密鍵のファイルを
- Apacheの設定ファイルを編集します。
- 対象ファイル:
C:\Apache24\conf\httpd.conf
- ポート番号を無効にします。
#Listen 80
- 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
- SSL設定ファイル
httpd-ssl.conf
を有効にします。 #Include conf/extra/httpd-ssl.conf Include conf/extra/httpd-ssl.conf
- SSL設定ファイル
- ApacheのSSL設定ファイルを編集します。
- 対象ファイル:
C:\Apache24\conf\extra\httpd-ssl.conf
- ポート番号を 8000 に変更します。
#Listen 443 Listen 8000
- サーバー名を変更します。
#ServerName www.example.com:443 ServerName senjuqa01:8000
- CGIの実行を許可します。
#<Directory "${SRVROOT}/cgi-bin"> # SSLOptions +StdEnvVars #</Directory>
- 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. インストールの流れ¶
- インストール用のrpmファイルを入手し、インストールするサーバーの任意のディレクトリに格納します。
- ダウンロードURL:ファイル名:
nginx-1.20.2-1.el8.ngx.x86_64.rpm
(ここでは
/tmp/
配下に格納した場合の手順を例として説明します。ほかのディレクトリに格納した場合は適宜各コマンドで指定するパスを変更してください。)
インストールするサーバーに管理者権限のアカウントでログインします。
- rpmコマンドでパッケージをインストールします。
# rpm -ivh /tmp/nginx-[0-9]*el8*.rpm
- nginxサービスを有効化します。
# systemctl enable nginx
6.2.3. Nginxの設定¶
NginxについてTomcatと通信させるにあたり設定を変更します。 SSL(https)の利用状況によって、設定方法が変わりますので注意してください。
6.2.3.1. SSL(https)を利用しない場合¶
- Nginxの設定ファイルを作成します。
- デフォルトの設定ファイルを削除します。
# rm -f /etc/nginx/conf.d/*
- NginxのSenju/QA用設定ファイルを新規に作成します。
# touch /etc/nginx/conf.d/senjuqa.conf
/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; } }
- Nginxを起動します。
# systemctl start nginx
6.2.3.2. SSL(https)を利用する場合¶
注釈
SSL(https)を利用する場合は事前にサーバー証明書および秘密鍵を準備する必要があります。
- SSL用サーバー証明書および秘密鍵を配置します。
- サーバー証明書および秘密鍵を格納するためのフォルダー
/etc/nginx/ssl
を作成します。 # mkdir -p /etc/nginx/ssl
- サーバー証明書および秘密鍵を格納するためのフォルダー
- 事前に準備したサーバー証明書および秘密鍵のファイルを
/etc/nginx/ssl
配下に格納します。 - サーバー証明書:
/etc/nginx/ssl/server.crt
秘密鍵:/etc/nginx/ssl/server.key
- 事前に準備したサーバー証明書および秘密鍵のファイルを
- Nginxの設定ファイルを作成します。
- デフォルトの設定ファイル
/etc/nginx/conf.d/default.conf
を削除します。 # rm -f /etc/nginx/conf.d/default.conf
- デフォルトの設定ファイル
- NginxのSenju/QA用設定ファイルを新規に作成します。
# touch /etc/nginx/conf.d/senjuqa.conf
/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; } }
- Nginxを起動します。
# systemctl start nginx