NginxはAphache(Apache)などのWebサーバーに、Reactアプリを配布するときに使用することができます。 Ubuntuの18.04環境でNginxでReactアプリを配布する方法を説明します。
Reactアプリビルド
まず、開発中のReactアプリが必要です。基本アプリでmyappプロジェクトを作成し、実行されていることを確認しました。
$ create-react-app myapp
$ cd myapp
$ npm start
Webサーバー(Nginx)は、ビルドされたファイルを使用するので、事前に構築成果物を作成おかなければならいます。
$ npm run build
Nginxの設定
今作成したReactアプリをWebサーバーのNginxを介して実行されるように作成されます。
まず、次のコマンドでNginxをインストールしてください。
$ sudo apt install nginx
インストールが完了したら、 /etc/nginx
パスにファイルが作成されます。
メイン画面に接続されているNginxの設定ファイルが既に作成されている状態ですが。私たちが作る設定と重なる可能性があるため、すべて消去を開始します。
下のパスにあるdefaultファイルを削除してください。
$ sudo rm /etc/nginx/sites-available/default
$ sudo rm /etc/nginx/sites-enabled/default
今myappのNginxの設定ファイルを作成してみましょう。 下のパスに移動して設定ファイルを作成してください。
$ cd /etc/nginx/sites-available/
$ sudo touch myapp.conf
myapp.conf
の内容は、以下のように入力してください。
(rootの /home/user/myapp/build
は上記で作成しReactのビルド成果物のパスです。自分のビルドファイルのパスに変更する必要があります)
server {
listen 80;
location / {
root /home/user/myapp/build;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
listen 80
は、ポート80の設定を意味します。
location /
はURLが"/"が含まれているパスの設定を意味します。
root
は実行ファイルのルートの場所を意味します。上記のビルドしたファイルのパスを入力します。
index
は、インデックスのファイルを指定するところであり、このファイルの中必ず一つはrootのパスに存在します。
try_files
はどのファイルを検索するとき指定された順序で検索さ、最初に発見されたファイルを使用していることを意味します。
/etc/nginx/sites-available/
に設定ファイルを作成したら、次のコマンドでは、ファイルのシンボリックリンクを /etc/nginx/sites-enabled/
にも作ってください。
名前のように、Webサーバーが動作したときに sites-enabled
の設定ファイルを参照します。
$ sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/myapp.conf
ファイルの作成は、すべて終わりました。今Nginxを実行してください。 次のコマンドでnginxを再実行してください。
$ sudo systemctl stop nginx
$ sudo systemctl start nginx
Webサーバーが正常に動作しているかの状態を確認するには、次のコマンドを使用します。
sudo systemctl status nginx
Nginxが動作中であれば、ブラウザで localhost:80
に接続しましょう。
まとめ
自分が開発したReactアプリをNginxで展開する方法について説明しました。
npm start
コマンドを使用すると、開発中のアプリをブラウザで実行を試みることができます。しかし、これは開発便宜のために、Webサーバーであるため、配布する際Nginxのような効率的かつ信頼性の高いWebサーバーを使用します。
次の記事ReactとNginxをDockerizingする方法では、ReactをDockerに展開する方法について説明します。 気になる方は、ReactとNginxをDockerizingする方法をご確認ください。
Related Posts
- コードでUMLを作成する方法を、PlantUMLをご紹介します
- VSCode - PlantUMLプラグインのインストールと使用方法
- Node.js - Twitter apiでツイートする方法
- Visual Studio Codeでコードを自動整列
- MavenでJavaプロジェクトをビルドする方法
- GitLab - `pre-receive hook declined`エラーを解決する
- AMPサイトにFacebook Comments(コメント)を記入する
- Desktop AMPのバージョンのAdsense適用する
- GoDaddyは -> NameCheapドメイン移転する
- Selenium - ページの読み込みが完了するまで待つ(python)
- Sublime Text3でCTagsを使用する方法
- IntelliJでスカラーインストールして使用する
- NginxでReactを展開する方法
- Ubuntuの18.04 - NVIDIAドライバをインストールする方法
- Plum 84 keyboardレビュー