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

IT技术 reactjs amazon-ec2
2021-05-14 20:45:21

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

4个回答

您可以使用 Amazon S3。

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

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

可以选择静态网站托管。

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

我对 React 有点陌生,但我想在这里添加我的经验。我使用 Apache 在 AWS EC2 上部署了我的 CRA 应用程序。

  • 启动 EC2 实例后,您可以点击此链接安装 Apache。
  • 构建您的 React 应用程序并上传“构建”文件夹。

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

您可以使用自定义端口在任何云 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}` ) );

或者

上面的代码将在HTTPHTTPS上启动你的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}` ) );