无法使用npm run build运行NextJS



我最近在我的digitalocean服务器上部署了一个react静态应用。我所做的只是在Nginx配置文件中显示构建文件的根目录。它运行得很好。

现在我正试图在我的服务器上托管一个NextJS应用程序。我展示了根目录root /var/www/html/NextJSTestApp/.next,我甚至尝试了root /var/www/html/NextJSTestApp/node_modules当我运行npm run build时,构建完成,然后我试图到达我的服务器,它显示"502坏网关">

但是当我运行npm start网站形象应用程序显示

我怎么做才能一直运行它?我用的是digitalocean液滴

当NextJS作为一个节点应用程序运行时(例如下一次启动),你需要设置nginx使用proxy_pass而不是指向根目录(省略根指令)。

示例nginx location block

server {
server_name example.com;
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
ssl_certificate /etc/nginx/certs/fullchain.cer;
ssl_certificate_key /etc/nginx/certs/fullchain.key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:8000; //your next app
}
}

首先,一旦关闭终端或离开bash,手动运行next start不会使进程持久化。为了让它在后台运行,你可以使用&&在启动命令结束时(下一个启动&&)或创建一个systemd文件(推荐)。

第二,一旦你完成了nextJs在后台运行,你可以继续设置一个代理传递到你的web服务器(nginx, apache…)

我找到了这个解决方案。为了运行这个项目背景,我使用了pm2。

  • sudo npm install -g pm2
    然后转到我的项目文件夹cd website/

pm2 start --name=website npm -- start

thenpm2 startup systemd

我遵循这个教程

相关内容

  • 没有找到相关文章

最新更新