如何在AWS EC2中部署create-react-app

时间:2018-05-09 09:47:42

标签: reactjs amazon-ec2

我正在使用react-router,所以我想在AWS Ec2中托管。如何部署应用程序并在后台永久运行或以任何其他方式让我知道

4 个答案:

答案 0 :(得分:3)

您可以使用Amazon S3。

在本地实例中执行npm run build。

将文件上传到S3存储桶实例。

可以选择静态网站托管。

https://s3.console.aws.amazon.com/s3/buckets

答案 1 :(得分:3)

答案 2 :(得分:1)

我对React有点新手,但是我想在这里补充我的经验。 我使用Apache在AWS EC2上部署了CRA应用。

  • 启动EC2实例后,您按照this link安装Apache。
  • 构建您的React应用并上传“ build”文件夹。

现在完成。最后,确保使用HashRouter 而不是BrowserRouter。 因为EC2不允许.htaccess文件将所有请求重定向到index.html,但是用HashRouter替换BrowserRouter可以帮助我解决该问题。 希望这可以帮助其他人节省时间。谢谢。

答案 3 :(得分:0)

您可以在具有自定义端口的任何云VM(虚拟机)(例如ec2)中构建和部署React.js应用。

通过使用它,您可以在同一台计算机上部署多个React应用程序。

您需要部署什么应用程序?

1。 Nodejs
2。 PM2js
3。 Koa.js
4。 Koa-static.js

您只需要执行此过程即可。

  1. 在您的项目中运行此命令 npm run build
  2. 它将在您的项目中创建一个构建文件夹
  3. 创建项目文件夹的zip并将其移动到您的 VM(ec2)上并将其解压缩。
  4. 在项目根文件夹中创建一个 Nodejs 脚本文件,并将以下脚本粘贴到其中。

文件名:buildStart.js

const httpPort = 80;
const httpsPort = 443;
const koa = require( 'koa' );
const serve = require( 'koa-static' );
const http = require( 'http' );
const https = require( 'https' );
const fs = require( 'fs' );
const app = new koa();
const cert = fs.readFileSync( '/ssl/cert.crt' );
const key = fs.readFileSync( '/ssl/private.key' );

app.use( serve( __dirname + '/build', {
    maxage: 365 * 24 * 60 * 60
} ) );

http.createServer( app.callback() ).listen( httpPort, () => console.log( `sever is listening on ${httpPort}` ) );
https.createServer( { cert, key }, app.callback() ).listen( httpsPort, () => console.log( `sever is listening on ${httpsPort}` ) );

OR

以上代码将同时在 HTTP HTTPS 上启动您的react应用程序。如果您没有https的证书,则只能为 HTTP 启动。

const httpPort = 80;
const httpsPort = 443;
const koa = require( 'koa' );
const serve = require( 'koa-static' );
const http = require( 'http' );
const https = require( 'https' );
const fs = require( 'fs' );
const app = new koa();

app.use( serve( __dirname + '/build', {
    maxage: 365 * 24 * 60 * 60
} ) );

http.createServer( app.callback() ).listen( httpPort, () => console.log( `sever is listening on ${httpPort}` ) );