发布于2024年02月03日浏览量52
官方给出的最佳实践是使用Vercel部署,确实简单快捷,但我还是想部署在自己的服务器上。 同时NextJs官网也有给出其他两种部署方法:NodeJs和Docker部署 Docker我尝试过了,是可行的,但是对于我这种Docker小白来说步骤还挺麻烦,并且不知道为什么在经过些奇怪的试错后域名没法绑定了,所以转战NodeJs。
a. 将整个项目上传到宝塔路径/www/wwwroot/
下,.next
和node_modules
不需要上传
b. 在项目路径下启动终端,输入npm run build
如果调用了外部api,build前先保证api能正常工作
c. build
成功后,进入“网站”-“Node项目”-“添加Node项目”
d. 选择项目目录为刚刚上传的项目
e. “启动选项”设为start
在package.json中有定义start的具体命令,可自行增加
-p xxxx
设置端口,如next start -p 3001
f. 设置相应的包管理器和Node版本,保存配置
g. 点击项目名称进入项目管理 h. 在“域名管理”添加要绑定的域名 i. “外网映射”里开启外网映射 j. “SSL”里绑定证书,并开启“强制HTTPS”
将“example.com”自动重定向到“www.example.com” k. 在项目管理中点击“伪静态”配置 l. 添加如下配置,保存
if ($host = 'example.com') {
return 301 https://www.example.com$request_uri;
}
m. 启动项目,检查项目日志
本来用的是腾讯云预装的腾讯云定制宝塔面板,系统是基于CentOS7.9的,结果Node版本支持最高只到16,而NextJs所需的最低版本为NodeJs 18,所以需要重装一遍系统。
a. 系统镜像选择“Ubuntu 22.04 LTS”
b. 安装宝塔面板wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
My Nocturzone
LEON の 熬夜空间
1 年 5 月 1 天 20 小时 15 分钟
My Nocturzone
LEON の 熬夜空间