gpt4 book ai didi

node.js - NextJS 部署 - 如何在 Ubuntu 服务器上简单地部署 NextJS,如 NodeJS?

转载 作者:行者123 更新时间:2023-12-04 16:40:25 29 4
gpt4 key购买 nike

为了部署 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

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

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

提前致谢。

最佳答案

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

[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

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

npm install 将依赖项安装在 node_modules (duh) 中。npm run build 编译了一些东西,最终结果为 static/npm run start 启动 NodeJS 服务器。

很多人建议使用 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 下运行。

来源:痛苦的经历。

关于node.js - NextJS 部署 - 如何在 Ubuntu 服务器上简单地部署 NextJS,如 NodeJS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61861930/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com