任何人都请解释一下。
我正在努力解决这个问题。我遵循了这篇博文https://www.davidmeents.com/blog/how-to-simply-deploy-a-react-app-on-digital-ocean/ 但是所有我都得到了nginx的默认页面,或者现在在一些搞乱配置之后我发现404找不到错误。
nginx内部有两个floders 1)站点 - 可用2)站点启用 我不确定哪一个与此相关。
我的配置就像这样
server {
listen 80;
server_name 139.59.25.228;
root /www/mywebsite/app/build;
rewrite ^/(.*)/$ $1 permanent;
location / {
try_files $uri index.html;
}
}
谢谢 - :)
答案 0 :(得分:5)
它不是那么复杂,你只需要:
1 /像往常一样开始你的反应应用程序,也许是npm start
,然后它可能会为你打开端口3000(或任何数字)
2 /端口80的配置nginx指向localhost:3000
(或您定义的端口):
server {
listen 80 default_server;
server_name YOURDOMAIN.HERE;
location / {
#auth_basic "Restricted Content";
#auth_basic_user_file /home/your/basic/auth/passwd_file;
proxy_pass http://localhost:3000; #or any port number here
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;
}
}
但是,为了保持npm start
- 您的本地主机端口3000服务器始终处于活动状态,我建议您使用pm2
:
sudo npm install pm2 -g
然后,将目录(cd
)更改为您的reactjs应用程序文件夹:(我假设您使用npm start
启动您的reactjs app)
pm2 start npm -- start
(如果您使用某种npm run:start
启动应用,那么应该是:pm2 start npm -- run:start
)
之后,pm2
将记住此命令!
有用的pm2命令:
pm2 list all
pm2 stop all
pm2 start all
pm2 delete 0
(使用delete 0删除ID为0的pm2 list
中的第一个命令)