不确定如何使用ExpressJS在生产服务器上启动和部署ReactJS App

马特

在本地,我在端口3001上使用ExpressJS,然后启动我的React应用,npm start应用在端口3000上运行开发服务器。这使我可以将请求作为代理从3000路由到3001。

为了进行生产,我在DigitalOcean Droplet上的16.04上安装了Ubuntu NodeJS 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。这是PM2启动(www是运行Express的服务器文件的名称)。

在此处输入图片说明

加载域时,我会收到Express默认页面:

在此处输入图片说明

现在我不确定如何启动react应用程序,因为使用它启动npm start并为生产服务器保持终端打开似乎不合逻辑访问域而不是Express消息时,我需要查看我的React应用。

我找到了提及使用的文章,npm run build但没有解释如何运行React应用。抱歉,我对此并不陌生,但是任何帮助将不胜感激。谢谢。

devserkan

您不会运行React应用程序,因为没有这样的事情:)构建应用程序后,所有文件都捆绑在一个Javascript文件中。您正在start开发中将React应用用于开发目的。

完成后:

npm run build

build的应用程序目录中将有一个目录。只需将所有文件和目录从该build目录复制到Nginx默认目录所指向的服务器即可。

如果您不想在浏览器的开发人员工具中打开常规应用程序代码,请删除build/static/js/some_file.js.map和,build/static/css/some_file.css.map然后再将文件上传到服务器。这些是用于调试目的的源映射文件。如果包含它们,则在开发人员工具中,每个人都可以直接看到您的文件。您的代码实际上已经向所有人开放,但是捆绑,丑化和缩小了。如果包含源地图文件,则将按原样打开它们。

这是您运行静态应用程序的方式。没有后端,意味着此处没有Express,仅使用Web服务器。

但是,由于您的问题涉及Express,因此我假设您正在使用后端服务器。因此,一种方法是使用开发中使用的所有后端和前端代码再次将所有项目复制到服务器。构建您的React应用。但是这次,您将只运行Express,而不是同时启动Express服务器和React开发服务器。Express将是为您的前端服务的平台。您应该已经在开发中配置了此功能并进行了一些生产测试。

因此,如果您不使用后端服务器,则除了单个Web服务器之外,就不需要Express或其他任何东西。如果您使用后端服务器,那么您需要诸如Express之类的服务来同时满足您的后端请求(例如对API的请求)和您的React应用程序。另外,您将需要像PM2这样的东西来运行Express,或者需要Express来为不同的应用程序使用代理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

App Store上的现有应用程序收到通知时,无法在生产服务器上收到通知

如何停止或禁用Google App Engine生产服务器?

如何从本地bash运行部署在远程服务器上的app.js?

App Engine在开发服务器上不会发生“ NeedIndexError:找不到匹配的索引”,但是在生产环境中却会发生

使用Java在Google App Engine上启动服务器上的运行脚本

如何与Express App并行启动Websocket服务器?

app.json部署后脚本会在生产环境和评论应用程序上运行吗?

React App无法使用npm start启动服务器

使用Nginx和Create-React-App开发服务器并启动npm

如何在生产服务器上部署Gulp

将go app部署到Bluemix后服务器无法启动

React App:使用React服务器启动API服务器

Laravel如何在生产中启动服务器

如何使用Centos7在生产服务器中部署流星应用程序

如何在生产和开发的同一端口4200上运行angular 4 app和nodejs api?

如何在Google App Engine的本地开发服务器上使用Python 3

Google App Engine-本地Dev服务器和已部署服务器之间的区别

如何使用App Tethering从服务器获取图像

如何在同一节点服务器上服务React App和Api?

将React App部署到Apache服务器

在Heroku上部署不带HTTP服务器的NodeJS App

Rstudio 服务器在部署 APP 时遇到问题

努力将Ionic Web App部署到服务器

Google App引擎上的生产部署问题

如何在Apache Web服务器上部署React App

如何在本地服务器上部署 Vue CLI App?

如何将React App部署到Godaddy服务器?

Jetty 8无法在AWS EC2服务器上启动Java Web App

如何在生产服务器上使用学说迁移汇总功能?