如何使用 NGINX 部署 NextJS?

2024-02-18

所以我知道如何在服务器上部署 React 应用程序。

  • npm 运行构建
  • 创建一个服务器块并将根指向我的反应应用程序文件夹构建(根 /var/www/xfolder/build;)
  • systemctl 重新启动 nginx
  • 运行我的节点服务器(nohup节点服务器&&)并完成。

I feel kind of dumb for not understanding this with NextJS. I run npm run build enter image description here

我期待类似构建文件夹的东西。我尝试将服务器块根设置为/var/www/xfolder/.next但页面仍然给出403禁止。我需要运行 npm run start 吗?我对如何正确部署应用程序感到困惑。我在 DigitalOcean 中使用 Ubuntu、NginX(1gb Droplet)。


检查一下:https://gist.github.com/iam-hussain/2ecdb934a7362e979e3aa5a92b181153 https://gist.github.com/iam-hussain/2ecdb934a7362e979e3aa5a92b181153

HTTP/HTTPS 参考:https://gist.github.com/iam-hussain/2ecdb934a7362e979e3aa5a92b181153 https://gist.github.com/iam-hussain/2ecdb934a7362e979e3aa5a92b181153

在端口 8080 启动 PM2 nextJS 服务:

  • cd PROJECT_DIRECTORY
  • pm2 start "npm run start -- -p 8080" --name contractverifier

配置 Nginx:

将此文件替换为以下代码/etc/nginx/sites-available/default

    server {
        server_name www.DOMAINNAME.com DOMAINNAME.com;

        index index.html index.htm;
        root /home/ubuntu/PROJECT_FOLDER; #Make sure your using the full path

        # Serve any static assets with NGINX
        location /_next/static {
            alias /home/ubuntu/PROJECT_FOLDER/.next/static;
            add_header Cache-Control "public, max-age=3600, immutable";
        }

        location / {
            try_files $uri.html $uri/index.html # only serve html files from this dir
            @public
            @nextjs;
            add_header Cache-Control "public, max-age=3600";
        }

        location @public {
            add_header Cache-Control "public, max-age=3600";
        }

        location @nextjs {
            # reverse proxy for next server
            proxy_pass http://localhost:8080; #Don't forget to update your port number
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }

        listen 80 default_server;
        listen [::]:80;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 NGINX 部署 NextJS? 的相关文章

随机推荐

  • 无法在画布上绘制垂直虚线

    我正在使用以下 javascript 算法在画布上绘制虚线 该算法正确绘制水平线 但无法绘制垂直线 g dashedLine function x y x2 y2 dashArray this beginPath this lineWidt
  • javascript 上的 localStorage 带来刷新

    我试图在空闲时关闭用户 在选项卡之间使用 javascript 下面的代码对于单个选项卡工作正常 对于多个选项卡它无法正常工作 例如 我设置了 10 秒作为空闲时间 并离开了第一个选项卡 它会在 10 秒内将用户抛出 假设我在以下位置打开了
  • 使用 babel 6 时,` __webpack_require__(...) 不是一个函数`

    一切似乎都建立得很好 http d pr i 1aZxR http d pr i 1aZxR使用以下配置 但是 当我运行代码时 出现以下错误 通过 webpack dev server Uncaught TypeError webpack
  • 如何在 R 中对行和列进行子集化

    我是R新手 在阅读 R in action 这本书时 遇到了一个问题 代码有什么区别newdata lt leadership order leadership age and newdata lt leadership order lea
  • 协变和逆变之间的区别

    我无法理解协变和逆变之间的区别 问题是 协变和逆变有什么区别 协变和逆变是将集合中的一个成员与另一个成员关联起来的映射函数 更具体地说 映射可以是协变的或逆变的relation在那一套上 考虑所有 C 类型集的以下两个子集 第一的 Anim
  • 存储目录结构的数据结构?

    我正在使用 struts 2 框架开发一个简单的 java web 应用程序 该应用程序的目的是使用JSP页面显示我的计算机下的特定目录结构 我的问题是使用哪种数据结构为了存储目录结构 以便 JSP 页面可以从操作类访问该目录结构对象 ps
  • 我应该从 Python 3.0 开始吗​​? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我决定扩大我的编程视野并学习Python编程语言 虽然我在大学课程和工作中的一两个项目中使用过一点 Python 但我绝不是专家 我的问题如
  • 使用 Perl 正则表达式捕获 C 样式代码块之前和之后的文本

    我正在尝试使用 Perl 正则表达式捕获 C 样式代码块之前和之后的一些文本 到目前为止 这就是我所拥有的 use strict use warnings my text lt lt END int max int x int y if x
  • 可绘制选择器在 Jelly Bean 中不起作用

    我有一个可绘制的选择器作为每个项目的背景ListView以突出显示所选行 一切在冰淇淋三明治中都可以正常工作 但在果冻豆中似乎不起作用 找不到任何文档说明哪些更改可能导致它停止工作以及我需要做什么来修复它 不工作是指当我单击行中的一行时Li
  • 什么是聚合初始化?

    数组初始化 第 4 章第 231 页中的部分 Java 思维 第二版 有这样说 在 C 中初始化数组很容易出错且乏味 C 使用 聚合初始化以使其更安全 Java没有 像 C 一样的 聚合 因为 Java 中一切都是对象 确实如此 有数组 并
  • 斑马打印机可以直接打印pdf吗

    是否可以通过Java中的斑马打印机直接打印存储的pdf 我找不到任何提及它们与直接打印兼容的内容 而且我无法打印它 我需要直接通过 zpl 进行通信吗 通过 Acrobat Reader 打印时 zebra 打印机工作正常 Adobe Re
  • 是什么导致在 iOS 应用程序 UI 测试期间获取元素快照时出现错误 -25204

    我在 UI 测试期间收到以下错误 使用 iPhone 6 模拟器 Assertion Failure UI Testing Failure Failure getting snapshot Error Domain XCTestManage
  • Math.floor(Math.random() * (Max - Min + 1) + Min) 在 JavaScript 中如何工作? (理论)

    我正在学习 JavaScriptfreecodecamp org https www freecodecamp org 基本 JavaScript 在舞台上103 110有一个任务是创建一个带有 2 个参数 最小值和最大值 的函数 并且该函
  • 如何使用电子邮件登录用户并使用 Django Rest Framework JSON Web 令牌将其注销?

    我有一个现有的 正在运行的 Django 应用程序 它实现了许多 Django REST framework API 我刚刚添加了用户身份验证Django rest framework JWT https github com GetBli
  • Linux 内核导出的符号

    我想检查Linux内核导出的符号列表 所以我发出命令 cat proc kallsyms 0000000000000000 D per cpu irq stack union 0000000000000000 D per cpu start
  • 如何在android中的按钮顶部显示进度条

    好的 这是我可以在 iOS 中在五分钟内完成的事情 但我似乎无法在 Android 上得到它 我只是想在按钮顶部显示进度条 我成功地渲染了进度条beside像这样的按钮 使用此代码
  • 这 2 个@synthesize 模式和推荐的模式有什么区别?

    在示例代码的很多地方我都看到了 synthesize 变量的两种不同方式 例如 我在这里使用 1 个示例按钮 property 强 非原子 IBOutlet UIButton logonButton 1 synthesize logonBu
  • 如何检查进程是否处于挂起状态(Linux)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux中是否有任何命令可以让我知道进程是否处于挂起状态 Linux中是否有任何命令可以让我知道进程是否处于挂起状态 没有命令 但有一次
  • Mysql中如何删除空白行?

    我确实有一个包含超过 100000 个数据元素的表 但其中有近 350 个空白行 如何使用 phpmyadmin 删除这些空白行 手动删除是一项繁琐的任务 一般的答案是 DELETE FROM table name WHERE some c
  • 如何使用 NGINX 部署 NextJS?

    所以我知道如何在服务器上部署 React 应用程序 npm 运行构建 创建一个服务器块并将根指向我的反应应用程序文件夹构建 根 var www xfolder build systemctl 重新启动 nginx 运行我的节点服务器 noh