【问题标题】:NextJS Deployment - How can I simply deploy NextJS like NodeJS on Ubuntu server?NextJS 部署 - 如何在 Ubuntu 服务器上简单地部署 NextJS,如 NodeJS?
【发布时间】:2020-09-29 02:30:03
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: node.js next.js


    【解决方案1】:

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

    [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 下运行。

    来源:痛苦的经历。

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 2023-03-14
      • 2021-01-30
      • 2022-06-10
      • 2022-01-08
      • 2020-05-17
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      相关资源
      最近更新 更多