【Reactのデプロイ(本番環境構築)】Ubuntu20.04,Node,Nginx

この記事は、Ubuntu20.04,Node,Nginxを利用して、Reactプロジェクトのデプロイ(本番環境構築)方法を紹介します。

 

◆動作検証環境

・ローカル環境:mac Big Sur
・さくらVPSサーバー:メモリ 512M, ストレージ:SSD 25GB, CPU:1コア
・OS:Ubuntu 20.04
・Node:10.19.0
・npm:6.14.4
・Nginx:1.18.0

今回は、さくらのVPS サーバーにUbuntu 20.04 をインストールした状態(最低限のセキュリティ管理)からの作業方法を紹介しています。
スポンサードリンク

Ubuntuの環境初期設定

セキュリティ管理

さくらVPSサーバーにUbuntu 20.04 をインストール後の最低限のセキュリティ管理は、下記の記事を参考にしてください。

サーバーセキュリティー対策【秘密鍵を用いたSSHログイン設定(ubuntu,mac)】

 

Ubuntuの初期設定

まずはリモートサーバーにログインします。

 

日本語環境の設定

日本語パックのインストール

 

日本語への設定

 

変更後の確認

↓のように表示されればOK

 

時刻設定の確認

以下のように表示される

 

タイムゾーンの変更

変更後の確認

 

ファイヤーウォール設定

 

ファイヤーウォール開始

 

Ubuntuのソフトウェアの更新

 

vimのインストール

インストール確認

 

node,npm,nginxのインストール

インストールの確認

 

nginxへのファイヤーウォールアクセス許可

 

ReactプロジェクトのBuildとリモートサーバーへのアップロード

スポンサードリンク

Reactのプロジェクトを本番環境へデプロイするために、ローカル環境のプロジェクトをビルドします。

 

ビルドが完了した後はbuildディレクトリをリモートサーバーへアプロードするために、githubへPushしておきます。

 

リモートサーバーへログインして、gitをインストールします。

 

次にプロジェクトを設置するディレクトリに移動して、プロジェクトをクローンします。

*今回は/var/www/htmlとしています。

 

 

スポンサードリンク

Nginxの設定

 

これからは、WEBサーバーNginxの設定を行います。

Nginxのエントリーファイルの編集

 

まず、Webサーバーのエントリーファイルがあるディレクトリへ移動します。

 

次に今回のDjangoプロジェクトで使用するオリジナルのエントリーファイルを作成します。

 

下記のように編集します。

この段階では、server_name にはリモートサーバーのIPアドレスを設定します。

 

作成したエントリーファイルの検証

下記のように表示されればOKです。

*エラーの表示がある場合は対応します。

 

作成したエントリーファイルを、新しいサイト(sites-available)のシンボリックリンクに貼る
 

Nginxのリスタート

 

ブラウザにアクセス(IPアドレス+ポート番号の指定は無し)してプロジェクトの表示を確認します。

表示が確認できればOKです。

 

もう一度configファイルを中心に見直し内容を編集します。

 

編集後は、既に作成済みのシンボリックリンクを削除し、編集し直したもので再度作成します。

 

リスタートして表示を確認します。

 

独自ドメイン・SSL化とリダイレクト設定

 

独自ドメインの設定

今までの設定で、IPアドレスの指定でサイトへアクセスできるようになりました。

ここからは独自ドメインの設定と、SSLとリダイレクトの設定を行います。

Webサーバーのエントリーファイルがあるディレクトリへ移動し、編集します。

 

nginx再起動

 

独自ドメインでブラウザにアクセス(ポート番号の指定は無し)してプロジェクトの表示を確認します。

表示が確認できればOKです。

 

SSL化とリダイレクト設定

今回はLet’s Encryptを利用してSSL化を行います。

letsencryptをインストール

 

SSL/TLS サーバ証明書の取得
letsencryptがport80を使用するので、一旦nginxを停止する
 

証明書を取得

 

詳しい方法は下記の記事にて確認してください。

 

独自ドメインサイトのSSL化(HTTPS化)【Letsencrypt,Ubuntu,Nginx】

Webサーバーのエントリーファイルがあるディレクトリへ移動し、編集します。

 

 

nginxの起動
 

ブラウザでサイトの表示が行われるか、URL欄の表示がhttps対応になっているかを確認します。

スポンサードリンク

letsencryptの証明書更新の自動化

letsencryptの証明書は3ヶ月ごとに更新する必要があります。

自動で更新を行うためにバッジ処理の設定を加えます。

 

詳しい方法は下記の記事にて確認してください。

独自ドメインサイトのSSL化(HTTPS化)【Letsencrypt,Ubuntu,Nginx】

 

 


以上、Ubuntu20.04,Node,Nginxを利用して、Reactプロジェクトのデプロイ(本番環境構築)方法を紹介しました。