最近nextjs 13发布,于是用它写了个小项目妹子图-魔力美少女,部署在阿里云上,简单记录一下过程。
- meizitu.mzh.ren
- 妹子图-魔力美少女 Vercel备用地址
nextjs 官方文档Deployment | Next.js有详细的部署指南,主要是三种方式:
- 部署到 Vercel 云平台
- 导出为静态文件,随意托管
- 自己部署
- Nodejs Server
- Docker 方式
其中 Vercel.com
我访问不了,静态文件
不支持某些特性,Docker 暂时没用过,所以就选了 Node.js Server
方式。
安装 Node Server环境
Node Server 环境主要涉及到:
- 运行环境:Node.js
- 包管理器:npm/cnpm/yarn
- 版本管理:nvm
安装过程略。
nextjs要求node版本在16以上,我本地也是16,所以没什么问题。但部署上去的时候,我发现我的服务器上的node版本是14,于是我就安装了nvm,用nvm安装了node16。
运行项目
下载项目文件到服务器。在next项目文件 package.json
会有 “build” 和 “start” 两个命令:
|
|
首先,运行 build
来构建您的应用程序。然后,运行 next start
启动 Node.js 服务器
。该服务器支持 Next.js 的所有功能。
PM2进程守护
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
安装 PM2
|
|
启动项目
|
|
设置端口(默认为3000)
|
|
也可以在 package.json
文件中添加端口:
|
|
查看进程
|
|
进程监控
|
|
关闭、重启、删除进程
|
|
查看日志
|
|
pm2 服务开机、重启自启动
|
|
绑定域名
我服务器上用的是nginx。nginx 是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务。反向代理配置如下:
|
|
Linux 目录权限问题
因为我不经常使用Linux,部署的时候遇到了一些权限问题,比如:
|
|
给目录加上权限就好了:
|
|