我已完成本教程,
https://reactjs.org/tutorial/tutorial.html
然后将其上传到生产服务器,使用SSL在ubuntu nginx上运行。 Ran npm run build
,使用serve module 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;
}
有任何想法如何用pm2复制serve -s -p 8083 build
?
谢谢!
我认为主要问题是serve
用于提供静态文件,而pm2
用于持久运行脚本。这是一篇关于服务与pm2反应的文章:
https://ygamretuta.xyz/deploy-create-react-app-with-pm2-16beb90ce52
但是有没有理由你不想让nginx监听端口8083并自己静态地提供构建文件?或者你有没有在端口80上提供构建文件的原因?