如何在数字海洋上部署create react应用程序?

Abh*_*hek 0 nginx reactjs digital-ocean

有人请解释一下。

我挣扎与this.I遵循这一博客帖子https://www.davidmeents.com/blog/how-to-simply-deploy-a-react-app-on-digital-ocean/ 但所有我得到的默认页nginx或现在经过一些混乱的配置后,我得到404 not found错误。

nginx内部有两个选件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;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢 -:)

thi*_*108 5

它并没有那么复杂,您只需要:

1 /像往常一样启动您的react应用程序npm start,也许它会为您打开端口3000(或任何数量)

2 /配置指向端口80 localhost:3000(或您定义的端口)的nginx :

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,为了保持npm start端口3000服务器的本地主机始终处于活动状态,建议您使用pm2

sudo npm install pm2 -g
Run Code Online (Sandbox Code Playgroud)

然后,将目录(cd)更改为您的reactjs应用程序文件夹:(我假设您使用它npm start来启动reactjs应用程序)

pm2 start npm -- start
Run Code Online (Sandbox Code Playgroud)

(如果你使用那种npm run:start启动应用程序,那么它应该是:pm2 start npm -- run:start

之后,该命令将被记住pm2

有用的pm2命令:

pm2 list all
pm2 stop all
pm2 start all
pm2 delete 0
Run Code Online (Sandbox Code Playgroud)

(使用delete 0删除pm2 listID为0 的第一个命令)