NextJS项目部署NodeServerPM2NginxLinux
最近nextjs 13发布,于是用它写了个小项目 妹子图-魔力美少女[1] ,部署在阿里云上,简单记录一下过程。
妹子图-魔力美少女• meizitu.mzh.ren[2] • 妹子图-魔力美少女[3] Vercel备用地址
nextjs 官方文档 Deployment | Next.js[4] 有详细的部署指南,主要是三种方式: • 部署到 Vercel 云平台[5] • 导出为静态文件,随意托管[6] • 自己部署• 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" 两个命令: { "scripts": { "dev": "next dev", "build": "next build", "start": "next start" } }
首先,运行 build 来构建您的应用程序。然后,运行 next start 启动 Node.js 服务器 。该服务器支持 Next.js 的所有功能。 PM2进程守护
PM2[7] 是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。 安装 PM2npm install pm2 -g启动项目pm2 start npm --name "nextjs" -- start设置端口(默认为3000)sudo pm2 start npm --name "nextjs" -- run start -- --port=8080
也可以在 package.json 文件中添加端口: { "scripts": { "dev": "next dev", "build": "next build", "start": "next start -p 8080" } }查看进程pm2 list pm2 show nextjs进程监控pm2 monit关闭、重启、删除进程pm2 stop nextjs pm2 restart nextjs pm2 delete nextjs查看日志pm2 logs nextjspm2 服务开机、重启自启动pm2 startup绑定域名
我服务器上用的是nginx。 nginx[8] 是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务。反向代理配置如下: server { server_name meizitu.mzh.ren; location / { proxy_pass http://127.0.0.1:8080; proxy_read_timeout 60; proxy_connect_timeout 60; proxy_redirect off; # Allow the use of websockets 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; } }Linux 目录权限问题
因为我不经常使用Linux,部署的时候遇到了一些权限问题,比如: Error: EACCES: permission denied, mkdir "/root/.next/cache"
给目录加上权限就好了: sudo chmod -R 777 /root/.next参考资料• Deploying NEXTJS site with nginx + pm2[9] • Setup a Next.js project with PM2, Nginx and Yarn on Ubuntu 18.04[10] • How to Update Node and NPM to the Latest Version[11] • Setup a Next.js project with PM2, Nginx and Yarn on Ubuntu 18.04[12] 引用链接
[1] 妹子图-魔力美少女: http://meizitu.mzh.ren/
[2] meizitu.mzh.ren: http://meizitu.mzh.ren/
[3] 妹子图-魔力美少女: https://mgirls.vercel.app/
[4] Deployment | Next.js: https://nextjs.org/docs/deployment
[5] 部署到 Vercel 云平台: vercel.com
[6] 导出为静态文件,随意托管: https://nextjs.org/docs/advanced-features/static-html-export
[7] PM2: https://pm2.keymetrics.io/
[8] nginx: https://www.nginx.com/
[9] Deploying NEXTJS site with nginx + pm2: https://gist.github.com/jjsquady/5399d6e1b23f501083a9c262d806e248
[10] Setup a Next.js project with PM2, Nginx and Yarn on Ubuntu 18.04: https://www.willandskill.se/en/articles/setup-a-next-js-project-with-pm2-nginx-and-yarn-on-ubuntu-18-04
[11] How to Update Node and NPM to the Latest Version: https://www.freecodecamp.org/news/how-to-update-node-and-npm-to-the-latest-version/
[12] Setup a Next.js project with PM2, Nginx and Yarn on Ubuntu 18.04: https://www.willandskill.se/en/articles/setup-a-next-js-project-with-pm2-nginx-and-yarn-on-ubuntu-18-04
欧冠第三轮战报!那不勒斯杀疯了,国米力克巴萨欧冠首轮比赛日战报!A组积分榜阿贾克斯16那不勒斯拉斯帕多里超级表现,那不勒斯本赛季杀疯了,3战3胜,阿贾克斯本赛季彻底沉沦!利物浦20格拉斯哥流浪者萨拉赫点射,阿诺德任意球破门利
爆冷,西部黑马掀翻热火!状元郎大爆发,希罗226,唐斯缺席北京时间10月5日上午730,NBA季前赛的较量正在如火如荼地进行,迈阿密热火坐镇主场迎击明尼苏达森林狼。在不少球迷眼中,森林狼可谓今年夏天的大冤头,他们制造了一笔震惊全联盟的大交
杜兰特力挺欧文,威少惊天举动引再争议,美媒爆三方交易北京时间10月5日,NBA季前赛正在火热进行中,各支球队都欲通过季前赛令球队松弛下来的身体尽快找回昔日比赛的感觉,亦或者令球队在季前赛完成磨合,找到合适的化学反应,令球队实力提升,
三间房客栈(上)三间房客栈(上)作者朱墨三间房客栈,也叫三间房旅社,或者黑木头房子。它孤零零地生存在阿尔泰群山之中,川流不息的倒流河,从它门前流过。它曾经是我的心灵客栈。我的心曾经在那个客栈停留过
为什么今年这么难(三)年轻人集体躺平不知各位有没有这样的感觉,这两年的年轻人普遍进入了低欲望状态,不想结婚,工作无所谓,不再有奋斗的方向好似全部躺平了,造就这个问题的核心是因为价值观在改变。举个简单的例子,拿80后一
日媒酸了!吐槽国乒有东道主优势为什么成都场馆不对国乒收费?北京时间10月5日,成都世乒赛进入到了淘汰赛。中国男乒的对手将是印度队,而女乒的对手则是匈牙利队。与此同时,日本队也进入到了淘汰赛,而他们的媒体却已经开始发酸。雅虎体育(日)撰文报
智慧的最高境界,是向愚蠢低头无论什么时候任何场合,当大家都夸一个人聪明的时候,说明这个人根本就不够聪明。因为真正的聪明人,在别人眼里都是傻子水木然聪明是一种生存的能力而智慧则是生存的一种境界。世界上聪明人不多
40完胜,樊振东助男乒4连胜北京时间10月5日消息,2022年国际乒联成都团体世乒赛,结束小组循环赛第四轮的争夺。卫冕冠军中国队以30战胜泰国队,夺得小组赛4连胜。第二盘,世界第一樊振东,尽管遇到了沙雅育坦查
双线争冠!四大主力出走的那不勒斯为何如此强悍?阿贾克斯被锤了个6比1!当听到这个消息时,没有熬夜看球的人会质疑其真实性,假球迷们会以为这怕是哪个大豪门才能打出来的惨案。实际上,实现这个比分的,却是在小组中被认为只能争二,如今高
前阿根廷国家队主教练将执教西甲劲旅前阿根廷国家队教练豪尔赫路易斯桑保利即将执教西甲劲旅塞维利亚。由于本赛季塞维利亚在赛季及欧冠的比赛中表现糟糕,联赛7轮,塞维利亚仅取得1胜2平4负的成绩,排在积分榜第17位,处在降
世纪大战!文班亚马7三分5帽砍37分!亨德森28分9助2023届最热门的两位新秀,2米20中锋维克托文班亚马和控卫斯科特亨德森今天在拉斯维加斯迎来交手。亨德森的点燃队在上半场7152领先文班亚马的巴黎Metropolitans92!亨