RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1417012
Accepted
Екатерина
Екатерина
Asked:2022-08-05 01:37:38 +0000 UTC2022-08-05 01:37:38 +0000 UTC 2022-08-05 01:37:38 +0000 UTC

如何将下一个 js 应用程序部署到主机?

  • 772

如何进行部署?我有各种文件要更改,据我了解,我需要将所有这些上传到主机,并且已经使用节点 js,尝试组装它?

在此处输入图像描述

reactjs node.js
  • 1 1 个回答
  • 301 Views

1 个回答

  • Voted
  1. Best Answer
    Mark Rihter
    2022-08-16T00:56:44Z2022-08-16T00:56:44Z

    这是一篇关于部署 next.js 应用程序的文章 - https://nextjs.org/docs/deployment。找出答案的最好方法是从这篇文章开始。

    您可以通过在帮助下生成静态文件来部署它们。next build && next export并使用 nginx 部署到任何机器上。

    静态文件的基本 nginx 配置如下所示:

     server {
            listen 80;
            server_name your_server_name.com;
            location / {
                root /www/data;
                index index.html index.htm;
            }
        }
    

    在这种情况下,nginx 服务器将使用位于 /www/data 目录中的 index.html 文件响应端口 80(http 的标准端口)上的请求

    第二种选择是直接部署 node.js 应用程序。在这种情况下,生成一个构建并使用命令在主机上运行它next build && next start。在这个阶段,您在 3000 端口上有一个工作项目。之后,您需要将 nginx 配置为代理服务器,这里是文档的链接 - https://docs.nginx.com/nginx/admin-guide/网络服务器/反向代理/。此类任务的基本配置如下所示:

    server {
        listen 80;
        server_name your_server_name.com;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    

    现在 nginx 会将所有 http 请求重定向到您的 next.js 应用程序。

    应该理解,部署应用程序有多种方式和适当的工具。作为 nginx 的替代品,有 Apache Web 服务器 ( https://httpd.apache.org/ )。

    要在生产中运行 node.js 应用程序,有一个 pm2 项目,我认为它会比标准的 next.js 更好地工作。pm2 官方网站为https://pm2.keymetrics.io/,其 npm 包为https://www.npmjs.com/package/pm2。

    作为 pm2 的替代方案,在 docker 容器中运行 next.js 应用程序的选项是 github 上的一个示例 - https://github.com/vercel/next.js/tree/canary/examples/with-docker。此选项可以与 docker-compose 结合使用,以便在出现错误时,容器将自行重启,您的应用程序将在不中断的情况下运行,无需手动重启。

    对于 docker-compose 配置,将 docker-compose.yml 文件添加到 github 示例中,内容如下:

    services:
      web:
        build: .
        ports:
          - 3000:3000
        restart: unless-stopped
    

    并使用命令运行 docker-compose docker-compose up。当然,为此您需要在主机上安装 docker(安装说明https://docs.docker.com/engine/install/)和 docker-compose (以及另一条说明 - https://docs.docker.com /撰写/安装/)

    最后,我想补充一点,我不是任何列出的技术的专家,学习一些东西的最佳选择是尝试自己做。您可以尝试使用上述任何方法在您自己的计算机上部署您的项目,然后在 yandex.cloud 上租用一个虚拟机,并通过使用 ssh 连接到该机器在生产环境中进行部署。

    • 2

相关问题

  • 如果图像在道具中,如何使背景图像做出反应?

  • 项目未显示

  • 引发错误:InvalidTokenError: Invalid token specified: Cannot read property 'replace' of undefined

  • 如何在没有 node.js 的情况下运行 react.js 应用程序

  • 如何从 React Native 中的导航堆栈中清除上一个屏幕?

  • 为什么渲染后会触发 Click 事件?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5