ローカルでは、ポート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アプリを実行する方法を説明していません。申し訳ありませんが、これは初めてですが、何か助けていただければ幸いです。ありがとうございました。
そのようなことはないので、Reactアプリを実行しません:)アプリをビルドした後、すべてのファイルを1つのJavascriptファイルにバンドルします。start
開発目的で開発中のReactアプリに使用しています。
行った後:
npm run build
あなたが持っているでしょうbuild
、あなたのappディレクトリ内のディレクトリを。このbuild
ディレクトリから、Nginxのデフォルトディレクトリが指すサーバーにすべてのファイルとディレクトリをコピーするだけです。
あなたは、ブラウザの開発者向けツールで、あなたの通常のアプリのコードを開き、削除したくない場合build/static/js/some_file.js.map
やbuild/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]
コメントを追加