如何在数字海洋上部署create react app?

时间:2017-05-31 07:48:38

标签: reactjs nginx digital-ocean

任何人都请解释一下。

我正在努力解决这个问题。我遵循了这篇博文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;
    }
}

谢谢 - :)

1 个答案:

答案 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中的第一个命令)