0

我已经完成了这个教程,

https://reactjs.org/tutorial/tutorial.html

然后将其上传到生产服务器,在带有 SSL 的 ubuntu nginx 上运行。Ran npm run build,创建了构建文件并使用serve 模块 serve -s -p 8083 build提供静态文件。它在端口 8083 上运行正常。

但是当我尝试将它添加为pm2服务时,pm2 serve ./build/ 8083我得到一个404 未找到(当它没有运行时,错误是 502 Bad Gateway)

我尝试了几种方法,使用pm2 serve ./ 8083,pm2 serve ./public/ 8083等。

Nginx 配置:

    location ~* /.(js|jpg|png|css)$ {
     access_log off;
     expires max;
    }
    location = /react-game {
    root /var/www/test.com/html/react-game/build;
    proxy_pass http://localhost:8083;
    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;
    autoindex off;
    }

任何想法如何serve -s -p 8083 build用 pm2 复制?

谢谢!

4

1 回答 1

0

我认为主要问题是serve为了提供静态文件,并且pm2是为了持续运行脚本。这是一篇关于使用 pm2 服务的文章:

https://ygamretuta.xyz/deploy-create-react-app-with-pm2-16beb90ce52

但是,您是否有理由不想让 nginx 在端口 8083 上侦听并自行静态提供构建文件?或者您是否有理由不在端口 80 上提供构建文件?

于 2018-09-18T01:41:15.370 回答