プロジェクト

全般

プロフィール

機能 #20

山村 一允 さんが2ヶ月前に更新

# 概要 
 社内システムのサブドメイン化に向けた事前準備として、VPSへNginxをリバースプロキシとして導入する。 

 導入はDockerコンテナでの運用を前提とし、既存環境への影響を最小限に抑えつつ、設定の再現性・保守性を高める構成とする。 

 また、本対応を機にInfrastructure as Code(IaC)の考え方を取り入れ、Nginxの設定やDocker Compose、構築手順書などの構成情報をGitリポジトリで管理する。 
 ### インフラ設定管理リポジトリ:https://github.com/ksd-corp/company-infrastructure 

 これにより、環境の再現性、変更履歴の管理、レビュー、バックアップ、および将来的な自動化への対応を容易にする。 

 なお、パスワードやSSL証明書などの機密情報はGitリポジトリでは管理せず、`.env`ファイルやDocker Volume等を利用して環境ごとに管理する。 

 DNSのAレコードではIPアドレスのみを指定でき、ポート番号を指定することはできない。そのため、各サブドメインへのアクセスはHTTP(80番)またはHTTPS(443番)で受け付け、Nginxでホスト名(サブドメイン)を判別し、VPS内で稼働している各サービスへ転送する構成とする。 

 Nginxではサブドメインごとに転送先のポート番号を設定し、リバースプロキシとして各サービスへアクセスを振り分ける。 

 | サービス名 | ポート番号 | 備考 | 
 | :--- | :--- | :--- | 
 | Mattermost | [8080](http://133.125.46.225:8080/) || 
 | Redmine | [3000](http://133.125.46.225:3000/) || 
 | 端末管理システム | [8090](http://133.125.46.225:8090/) || 
 | SES管理システム | [8101](http://133.125.46.225/ses_sys) |Apacheによるプロキシ設定あり<br>VPS内の/etc/httpd/conf.d/dav_svn.confで設定| 
 | SES管理システム(検証用) | [8102](http://133.125.46.225/ses_sys_stg) |Apacheによるプロキシ設定あり<br>VPS内の/etc/httpd/conf.d/dav_svn.confで設定<br>基本的に停止している| 

 # 実施内容 
 - インフラ管理用Gitリポジトリの作成 
 - DockerコンテナによるNginx環境の構築 
 - Docker Composeファイルの作成 
 - Nginx設定ファイル(`nginx.conf`、`conf.d`)の作成 
 - `.env.example`および`.gitignore`の作成 
 - README(構築・運用手順)の作成 
 - リバースプロキシ設定の作成 
 - サブドメインごとの転送設定(Server Block) 
 - HTTP(80番)・HTTPS(443番)でのアクセス確認 
 - 既存のApache(SVN)との共存確認 

 # 完了条件 
 - DockerコンテナとしてNginxが正常に起動すること 
 - Nginxが80番・443番ポートでアクセスを受け付けられること 
 - サブドメインごとに指定したサービスへアクセスを振り分けられること 
 - 既存のApache(SVN)へ影響がないこと 
 - Docker Composeにより環境を再現できること 
 - Nginx関連の構成ファイルおよび手順書がGitリポジトリで管理されていること 
 - 機密情報がGitリポジトリに含まれていないこと

戻る