node.js - 将 Next.js 部署到共享主机
问题描述
我需要将 Next.js 应用程序部署到支持 Node.js 的共享托管服务提供商。官方的 Next.js 文档说您(仅?)需要next start
在服务器上运行(我猜是通过 SSH)。
- 我
build
只需要部署版本还是需要通过 ssh 在服务器上运行构建命令? - 一旦构建准备好,运行
npm start
真的是我唯一需要做的事情吗?我有点担心服务器因任何原因停止并且站点出现故障。我用谷歌搜索了很多,发现有些人提到使用pm2
(参考freeCodeCamp 上的这篇文章。)但不确定 Next.js 是否会在生产时自动重启服务器?
解决方案
在服务器上,你可以这样做,当然你应该有 pm2 (npm install -g pm2) 和 nginx 的配置来代理传递你的下一个服务器将运行的端口,例如 6060(添加到 nginx.conf/server /location 这一行:proxy_pass http://localhost:6060) 然后:
- 上传源文件夹(pages、public、src、package.json) - 例如你的文件夹到 /var/www/your-folder 之类的地方
- chown 它: sudo chown -R $USER:$USER /var/www/your-folder
- cd 到你的文件夹并运行:npm -i
- 然后编辑 package.json 并更改“next start -p your-port”,例如 6060
- npm 运行构建
- 运行 pm2(在您的文件夹中): pm2 start "npm run start" --name project-whatever-you-like
要让 pm2 自动重启,请运行: pm2 startup systemd , pm2 将生成一行,您应该复制该行并运行它。
在共享主机上,现在有很多提供商支持运行 nodejs 应用程序,但我不知道他们是否可以运行 nextjs 应用程序,例如在 plesk 中您可以通过配置 app.js 路径和项目文件夹路径、公共文件夹路径等来配置运行 nodejs 应用程序,但是对于下一个应用程序,您没有要运行的 app.js,而是启动下一个服务器的脚本。反正你可以试试:)
或者你可以简单地转移到一个 vps,它的价格现在相当便宜,你可以用自己的服务器做很多事情(谷歌计算引擎提供免费的东西 - 几乎免费一年)
推荐阅读
- android - MotionLayout 以编程方式创建过渡
- html - 如果它是从 JS 构建的,如何在调整大小事件后重建 DOM
- c - 如何使 C 程序空闲
- angular - 如何让 WebStorm 识别 Angular Material 语法?
- android - 删除 Firestore 集合中的所有文档
- python - 我创建了这个循环,但我想为它分配一个范围(3),这样它就不会打印大量的数字......有什么想法吗?
- python - 在泰坦尼克号数据集中,每位乘客平均有多少个亲属?计算并返回 Name 和 Number relatives 列
- c++ - 给出错误的输出
- c# - 根据分支条件测试调用什么方法 - 除了控制器之外的所有测试都在接口后面
- apache-spark - Spark Structured Streaming 使用 spark-acid writeStream(带检查点)抛出 org.apache.hadoop.fs.FileAlreadyExistsException