ExpressJSを使用して本番サーバーにReactJSアプリを起動してデプロイする方法がわからない

マット

ローカルでは、ポート3001でExpressJSを使用しnpm startてから、ポート3000で開発サーバーを実行するreactアプリを起動します。これにより、リクエストをプロキシとして3000から3001にルーティングできます。

本番環境では、16.04のDigitalOceanDropletにUbuntuNodeJS 6.12.13をインストールしてから、NginxとPM2をインストールしました。

Nginxdefaultファイルで次のように設定しました。

location / {
    proxy_pass http://localhost:3001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

ExpressとReactのセットアップを移動し、ExpressサーバーをPM2スタートアップに追加しました。Nginxは、ポート3001でExpressを使用するためのリバースプロキシサーバーとして使用されてwwwいます。これがPM2スタートアップです(Expressを実行するサーバーファイルの名前です)。

ここに画像の説明を入力してください

ドメインを読み込むと、Expressのデフォルトページが表示されます。

ここに画像の説明を入力してください

現在、reactアプリを使用して起動npm startし、本番サーバー用にターミナルを開いたままにしておくのは論理的ではないように思われるため、reactアプリを起動する方法がわかりませんExpressメッセージではなく、ドメインにアクセスしたときにReactアプリを表示する必要があります。

使用することに言及している記事を見つけましたnpm run buildが、Reactアプリを実行する方法を説明していません。申し訳ありませんが、これは初めてですが、何か助けていただければ幸いです。ありがとうございました。

devserkan

そのようなことはないので、Reactアプリを実行しません:)アプリをビルドした後、すべてのファイルを1つのJavascriptファイルにバンドルします。start開発目的で開発中のReactアプリに使用しています。

行った後:

npm run build

あなたが持っているでしょうbuild、あなたのappディレクトリ内のディレクトリを。このbuildディレクトリから、Nginxのデフォルトディレクトリが指すサーバーにすべてのファイルとディレクトリをコピーするだけです。

あなたは、ブラウザの開発者向けツールで、あなたの通常のアプリのコードを開き、削除したくない場合build/static/js/some_file.js.mapbuild/static/css/some_file.css.map、サーバーにファイルをアップロードする前に。これらは、デバッグを目的としたソースマップファイルです。それらを含めると、開発者ツールでは誰もがあなたのファイルを直接見ることができます。あなたのコードは実際には誰にでも開かれていますが、バンドルされ、醜く、縮小された方法で開かれています。ソースマップファイルを含めると、そのまま開かれます。

これは、静的アプリを実行する方法です。バックエンドがないということは、ここではExpressがなく、Webサーバーを使用していることを意味します。

ただし、質問にはExpressが関係しているため、バックエンドサーバーを使用していると思います。したがって、1つの方法は、開発で使用しているすべてのバックエンドコードとフロントエンドコードを使用して、すべてのプロジェクトをサーバーに再度コピーすることです。Reactアプリを作成します。ただし、今回はExpressサーバーとReact開発サーバーの両方を起動する代わりに、サーバーでExpressのみを実行します。Expressがフロントエンドにサービスを提供します。開発でこれをすでに構成し、いくつかの実稼働テストを実行している必要があります。

したがって、バックエンドサーバーを使用しない場合は、単一のWebサーバー以外にExpressやその他のものは必要ありません。バックエンドサーバーを使用する場合は、バックエンドリクエスト(APIなど)とReactアプリの両方を処理するためにExpressのようなものが必要です。さらに、Expressを実行するにはPM2のようなものが必要であり、さまざまなアプリのプロキシを使用するにはオプションでExpressが必要です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Centos7を使用して本番サーバーにmeteorアプリをデプロイする方法

分類Dev

drupalサイトをローカルにセットアップしてから本番サーバーに移動する方法...

分類Dev

Jenkinsを使用して本番サーバーにデプロイする

分類Dev

プロバイダーを使用してアプリの起動時に状態をロードする方法

分類Dev

djangoアプリを本番サーバーにデプロイします。gitcloneに環境(env)を含める必要がありますか?

分類Dev

jboss 7.1.1サーバーを起動してjboss 7.1.1にプロジェクトをデプロイする方法

分類Dev

Angular 10:ブラウザーの戻るボタンを使用して外部URLから戻るときに、FirefoxでデプロイされたアプリバージョンでngOnInitが起動しない

分類Dev

アプリがモバイルデバイスから起動したときに、サーバーから.js(すべてのコンポーネント)ファイルを動的にダウンロードします

分類Dev

本番サーバー証明書を使用して、開発アプリにプッシュ通知を送信する

分類Dev

iisを使用してMVCアプリケーションをライブサーバーにデプロイすると、「HRESULTからの例外:0x800A03EC」というエラーが発生するのはなぜですか?

分類Dev

プライベートサーバーにgitlab-ciを使用してsymfonyアプリを自動デプロイする方法は?

分類Dev

本番サーバーにgulpをデプロイする方法

分類Dev

誰かが使用している場合にJavaアプリケーションをデプロイする方法

分類Dev

バックボーンjsアプリを本番サーバーにデプロイする方法。

分類Dev

cca Google Chromeアプリを使用しているときに、バックグラウンドサービスからChromeアラームを起動する

分類Dev

Redmiデバイスのバックグラウンドサービスからアクティビティを起動しているときに「アクティビティ画面」に最近のアプリが表示されない理由

分類Dev

パイプラインを使用してAzuredevopsからアプリケーションをデプロイし、サブスクリプションと組織が異なるAzureAppServiceにするにはどうすればよいですか

分類Dev

ReactJSの静的サーバーを介してアプリケーションを提供しながら新しいポートを設定する方法

分類Dev

Windows のサービスからユーザーのデスクトップにログオンしていないアプリケーションを起動する方法

分類Dev

WildFlyサーバーを起動して設定し、1回のMaven実行でwildfly-maven-pluginを使用してアプリをデプロイします

分類Dev

WildFlyサーバーを起動して設定し、1回のMaven実行でwildfly-maven-pluginを使用してアプリをデプロイします

分類Dev

Angular UniversalアプリをNode.js本番サーバーにデプロイする方法は?

分類Dev

データベース接続を使用してコードをAzureWebにデプロイすると、Flaskアプリはレンダリングに失敗しますが、ローカルサーバーからは正常に機能します

分類Dev

Dockerを使用して本番サーバーをUPSでデプロイすることをお勧めしますか?

分類Dev

デプロイ時にTomcatがアプリケーションを起動しないようにする

分類Dev

Tomcat本番サーバーでコードを編集しているときにクリーンアップして再起動する方法とタイミング

分類Dev

Nginxサーバーを使用してUbuntuサーバーにdotnetコアアプリケーションをデプロイする方法は?

分類Dev

アプリが起動するたびにGCMにデバイスを登録するのが正しいアプローチですか?

分類Dev

ファイルリストから画像を削除し、APIリクエストを使用してサーバーにアップロードする方法は?

Related 関連記事

  1. 1

    Centos7を使用して本番サーバーにmeteorアプリをデプロイする方法

  2. 2

    drupalサイトをローカルにセットアップしてから本番サーバーに移動する方法...

  3. 3

    Jenkinsを使用して本番サーバーにデプロイする

  4. 4

    プロバイダーを使用してアプリの起動時に状態をロードする方法

  5. 5

    djangoアプリを本番サーバーにデプロイします。gitcloneに環境(env)を含める必要がありますか?

  6. 6

    jboss 7.1.1サーバーを起動してjboss 7.1.1にプロジェクトをデプロイする方法

  7. 7

    Angular 10:ブラウザーの戻るボタンを使用して外部URLから戻るときに、FirefoxでデプロイされたアプリバージョンでngOnInitが起動しない

  8. 8

    アプリがモバイルデバイスから起動したときに、サーバーから.js(すべてのコンポーネント)ファイルを動的にダウンロードします

  9. 9

    本番サーバー証明書を使用して、開発アプリにプッシュ通知を送信する

  10. 10

    iisを使用してMVCアプリケーションをライブサーバーにデプロイすると、「HRESULTからの例外:0x800A03EC」というエラーが発生するのはなぜですか?

  11. 11

    プライベートサーバーにgitlab-ciを使用してsymfonyアプリを自動デプロイする方法は?

  12. 12

    本番サーバーにgulpをデプロイする方法

  13. 13

    誰かが使用している場合にJavaアプリケーションをデプロイする方法

  14. 14

    バックボーンjsアプリを本番サーバーにデプロイする方法。

  15. 15

    cca Google Chromeアプリを使用しているときに、バックグラウンドサービスからChromeアラームを起動する

  16. 16

    Redmiデバイスのバックグラウンドサービスからアクティビティを起動しているときに「アクティビティ画面」に最近のアプリが表示されない理由

  17. 17

    パイプラインを使用してAzuredevopsからアプリケーションをデプロイし、サブスクリプションと組織が異なるAzureAppServiceにするにはどうすればよいですか

  18. 18

    ReactJSの静的サーバーを介してアプリケーションを提供しながら新しいポートを設定する方法

  19. 19

    Windows のサービスからユーザーのデスクトップにログオンしていないアプリケーションを起動する方法

  20. 20

    WildFlyサーバーを起動して設定し、1回のMaven実行でwildfly-maven-pluginを使用してアプリをデプロイします

  21. 21

    WildFlyサーバーを起動して設定し、1回のMaven実行でwildfly-maven-pluginを使用してアプリをデプロイします

  22. 22

    Angular UniversalアプリをNode.js本番サーバーにデプロイする方法は?

  23. 23

    データベース接続を使用してコードをAzureWebにデプロイすると、Flaskアプリはレンダリングに失敗しますが、ローカルサーバーからは正常に機能します

  24. 24

    Dockerを使用して本番サーバーをUPSでデプロイすることをお勧めしますか?

  25. 25

    デプロイ時にTomcatがアプリケーションを起動しないようにする

  26. 26

    Tomcat本番サーバーでコードを編集しているときにクリーンアップして再起動する方法とタイミング

  27. 27

    Nginxサーバーを使用してUbuntuサーバーにdotnetコアアプリケーションをデプロイする方法は?

  28. 28

    アプリが起動するたびにGCMにデバイスを登録するのが正しいアプローチですか?

  29. 29

    ファイルリストから画像を削除し、APIリクエストを使用してサーバーにアップロードする方法は?

ホットタグ

アーカイブ