我最近能够在运行npm run build
命令后将节点服务器与我的 react 应用程序连接起来。使用node server
在本地运行我的应用程序时,将生成文件夹添加到我的公用文件夹后一切正常。(我使用create-react-app
创建了这个应用程序,除了将构建移动到公共并在主目录中创建server.js
之外,没有更改目录结构(
但是,当我将这些更改推送到我的NGINX Web服务器时,我收到502错误网关错误。 在添加构建文件夹之前,我的服务器运行良好,只是没有渲染 JSX 元素。现在我可以仅使用 node 命令在本地渲染,但我的在线服务器完全关闭。
这是server.js
的代码
const express = require('express');
const path = require('path');
const app = express();
app.use('/js', express.static(path.join(__dirname, 'src/')));
app.use('/css', express.static(path.join(__dirname, 'src/')));
app.use(express.static(path.join(__dirname , '/public/build')));
// Handles any requests that don't match the ones above
app.get('/', (req,res) =>{
console.log('get root')
res.sendFile(path.join(__dirname , "/public/build/index.html"));
});
const port = process.env.PORT || 5000;
app.listen(port);
console.log('App is listening on port ' + port);
以下是错误日志
2020/02/13 05:03:22 [error] 7422#7422: *4468 connect() failed (111: Connection refused) while connecting to upstream, client: 162.84.158.175, server: anthonyjimenez.me, request: "GET / HTTP/2.0", upstream: "http://127.0.0.1:3000/", host: "anthonyjimenez.me"
2020/02/13 05:25:51 [error] 7422#7422: *4477 connect() failed (111: Connection refused) while connecting to upstream, client: 162.84.158.175, server: anthonyjimenez.me, request: "GET / HTTP/2.0", upstream: "http://127.0.0.1:3000/", host: "anthonyjimenez.me"
更改了位置块proxy_pass以使用 IP:proxy_pass http://127.0.0.1:5000(不是proxy_pass http://localhost:5000(。