NextJS 部署 - 如何在 Ubuntu 服务器上像 NodeJS 一样简单地部署 NextJS?

Mai*_*cmi 5 node.js next.js

为了部署 NodeJS,我使用 systemd 并配置 /lib/systemd/system/[service_name].service 文件

=========================================

[Unit]
Description=Inventory Management System
Documentation=PLM Inventory Management Documents
After=network.target

[Service]
Environment=NODE_PORT=3000
Type=simple
User=superuser
WorkingDirectory=/home/superuser/inventory
ExecStart=/home/superuser/.npm-global/bin/nodemon --exec babel-node /home/superuser/inventory/server/server.js
Restart=on-failure

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

=========================================

如何通过 systemd 在 ubuntu 服务器上部署 NextJS?

提前致谢。

ku4*_*eto 12

我使用以下单元文件运行它:

[Unit]
Description=NodeJS server, NextJS public frontend
After=network.target

[Service]
Type=simple
User=someuser
Group=someuser
Restart=on-failure
RestartSec=10
WorkingDirectory=/some/dir/
ExecStartPre=/usr/bin/npm install
ExecStartPre=/usr/bin/npm run build
ExecStart=/usr/bin/npm run start

[Install]
WantedBy=multi-user.target

Run Code Online (Sandbox Code Playgroud)

应该WorkingDirectory指向 NextJS 项目所在的目录。

npm install在(废话)中安装依赖项node_modulesnpm run build编译一些东西,最终启动static/ npm run startNodeJS 服务器。

很多人建议使用pm2,但我不喜欢它。如果您使用 CDI,则可以将npm run buildnpm install放入构建过程中,然后提取工件(下面提到的文件/文件夹)。

考虑到 NextJS 的工作方式,您可能只需要以下文件和文件夹:node_modules/ static/ package.json package-lock.json next.config.js. 不过,这也取决于您的项目。

当然,这对于生产服务器来说还远远不够。特别是,因为您需要设置一个像 Nginx 或 Apache 这样的网络服务器,以便location对您的 NextJS 应用程序进行代理传递。这是因为,NextJS 应用程序在Localhost:PORT.

资料来源:这方面的痛苦经历。