部署Next.js应用详细指南:在 Linux 服务器上使用 Nginx、PM2、Certbot 和 Git
创始人
2024-09-26 07:27:21
0

假设你已经构建了一个 Next.js 应用,现在想要将其部署到 Linux 服务器上。我将引导你完成这些步骤。
在这里插入图片描述
首先,你需要确保你的服务器已安装 Nginx。

如果没有,你可以使用几个简单的命令进行安装。完成后,你需要为应用设置一个域名。你可以从域名注册商处购买域名,也可以使用免费域名提供商(如 Freenom)。在你的服务器上,可以通过运行以下命令安装 nginx:

sudo apt-get update sudo apt-get install nginx 

接下来,使用 Git 将 Next.js 应用存储库克隆到你的服务器。

可以通过运行以下命令来执行此操作:

git clone  

我使用的是Xftp7,给服务器直接传了个压缩包,毕竟node包和原项目下的一些依赖项不需要拷贝。

随后安装应用程序所需的任何依赖项并构建应用程序,然后才能部署它。

为此,请导航到应用程序目录并通过运行以下命令安装其依赖项:

npm install 

安装依赖项后,运行以下命令来构建应用程序:

npm run build 

一旦你的应用程序准备就绪,将需要设置 PM2。

这是一个进程管理器,可帮助你让应用在后台运行,并在应用崩溃时重新启动。PM2 易于安装和使用,是确保你的应用始终可供用户使用的绝佳方式。要安装 PM2,请运行以下命令:

npm install -g pm2  

接下来,通过运行以下命令使用 PM2 启动应用程序:

pm2 start npm --name "your-app-name" -- start  

这将启动应用程序并将其命名为“your-app-name”。如果应用程序崩溃,PM2 将自动重新启动它。

你可以通过pm2 list查看应用程序的状态

在这里插入图片描述
修改项目

更新项目,只需要传入文件重新npm run build后暂停pm2进程守护pm2 stop
进行npm run start再重启pm2 restart 即可完成更新。

我一共上传了两个项目,第一个项目启动在默认端口3000上,
第二个项目则需要手动设置端口

PORT=3003 npm run start PORT=3003 pm2 start npm --name "your-app-name" -- start  

接下来,你需要设置 Nginx 来代理对你的应用的请求。

这听起来可能很复杂,但实际上非常简单。你只需要创建一个新的 Nginx 配置文件,粘贴一些代码,然后重新启动 Nginx。
通过运行以下命令创建一个新的 Nginx 配置文件

server {     listen 80;     server_name your-domain-name.com www.your-domain-name.com;     location / {         proxy_pass http://localhost:3000;         proxy_set_header Host $host;         proxy_set_header X-Real-IP $remote_addr;     } } 

将“your-domain-name.com”替换为你的实际域名。保存配置文件并退出文本编辑器。

接下来,通过运行以下命令在 sites-enabled 目录中创建指向配置文件的符号链接:

sudo ln -s /etc/nginx/sites-available/your-app-name.com /etc/nginx/sites-enabled/  

最后,通过运行以下命令重新启动 Nginx:

sudo systemctl restart nginx 

设置 Nginx 并且的用程序准备就绪后,你要确保您域名正确指向您的服务器。

更新 DNS 记录的方法如下:

登录您购买域名的域名注册商网站。
查找您的域的 DNS 管理部分。
添加指向您服务器 IP 地址的“A”记录。如果您不确定如何查找您服务器的 IP 地址,请参阅您的服务器提供商的文档。
如果您想在域名中使用“www”,您也可以添加指向域名的 CNAME 记录。
保存更改并等待最多 24 小时以使 DNS 更改在互联网上传播。
一旦您的 DNS 更改传播出去,您就需要设置 Certbot。

此工具可帮助您为域名设置 SSL 加密。SSL 加密很重要,因为它有助于保护用户的数据免遭窥探。要安装 Certbot,请运行以下命令:

sudo apt-get update sudo apt-get install certbot python3-certbot-nginx 

接下来,运行以下命令来生成 SSL 证书:

sudo certbot --nginx -d your-domain-name.com -d www.your-domain-name.com 

将“your-domain-name.com”替换为您的实际域名。按照提示生成您的 SSL 证书。

更新 Nginx 配置文件

生成 SSL 证书后,您需要更新 Nginx 配置文件以使用 HTTPS 而不是 HTTP。运行以下命令打开 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/your-app-name.com  

将文件内容替换为以下代码:

server {     listen 80;     server_name your-domain-name.com www.your-domain-name.com;     return 301 https://$host$request_uri; }  server {     listen 443 ssl;     server_name your-domain-name.com www.your-domain-name.com;      ssl_certificate /etc/letsencrypt/live/your-domain-name.com/fullchain.pem;     ssl_certificate_key /etc/letsencrypt/live/your-domain-name.com/privkey.pem;      location / {         proxy_pass http://localhost:3000;         proxy_set_header Host $host;         proxy_set_header X-Real-IP $remote_addr;     } } 

将“your-domain-name.com”替换为您的实际域名。保存配置文件并退出文本编辑器。

通过运行以下命令重新启动 Nginx:

sudo systemctl restart nginx  

最后,你需要测试你的应用,以确保一切正常

现在,你的应用应该可以通过 HTTPS 在您的域名上访问。通过在网络浏览器中访问你的域名来测试它。

恭喜!
您刚刚使用 Nginx、PM2、Certbot 和 Git 在 Linux 服务器上部署了 Next.js 应用程序。乍一看,这可能看起来很艰巨,但只要有一点耐心和毅力,任何人都可以做到。祝你好运!

祝你编码愉快🧑🏽‍💻


文章参考:https://dev.to/j3rry320/deploy-your-nextjs-app-like-a-pro-a-step-by-step-guide-using-nginx-pm2-certbot-and-git-on-your-linux-server-3286

目前部署Next.js项目的教程挺多但是质量参差不齐,这是一篇非常有用的指南,解决了我很多问题,希望能帮到你们!😄

相关内容

热门资讯

笔记本xp系统安装安卓系统,轻... 你有没有想过,在你的老式笔记本上安装一个全新的操作系统呢?想象那台陪伴你多年的老笔记本,突然焕发出青...
安卓操作系统吃内存,安卓操作系... 手机里的安卓操作系统是不是让你感觉内存越来越不够用了?别急,今天就来给你好好分析分析这个让人头疼的问...
王者号ios系统怎么转安卓系统... 你是不是也和我一样,对王者荣耀这款游戏爱得深沉呢?尤其是当你发现某个英雄在安卓系统上玩起来更加得心应...
战神遗迹安卓苹果系统,探索神秘... 亲爱的玩家们,你是否曾在游戏中追寻那些传说中的神秘遗迹?今天,我要带你走进一个充满传奇色彩的领域——...
几何a安卓系统升级,畅享智能出... 你有没有发现,你的几何A最近变得聪明多了?没错,就是那个陪伴你上下班的几何A,它悄悄地升级了安卓系统...
系统最清爽的安卓手机,探索系统... 你有没有想过,拥有一部系统最清爽的安卓手机,就像是拥有了夏日里的一阵清风,让人心情舒畅,操作顺畅?今...
安卓10系统严重有问题,揭秘严... 最近你的安卓手机是不是也遇到了一些让人头疼的问题呢?别急,让我来给你一探究竟,看看安卓10系统到底有...
安卓系统闽政通打不开,“闽政通... 最近是不是有不少小伙伴在使用安卓手机时遇到了一个让人头疼的问题——闽政通打不开?别急,今天就来给你详...
安卓系统有指纹忘了图案,解锁攻... 手机解锁方式千千万,指纹解锁和图案解锁可谓是其中的佼佼者。但有时候,指纹解锁用得太多,导致忘记了图案...
QQ飞车安卓系统怎么换苹果系统... 你是不是也和我一样,对QQ飞车这款游戏爱得深沉呢?不过,最近我发现了一个超级有趣的问题:怎么把QQ飞...
安卓可冻结的系统文件,那些不可... 你知道吗?在安卓的世界里,有一些神秘的文件,它们就像隐藏在深宫中的宝贝,让人既好奇又敬畏。这些文件,...
安卓系统安装需要备份吗,关键指... 你最近是不是在准备给安卓手机升级系统或者安装新应用呢?别急,别急,在这之前,有个小细节你得注意一下—...
高仿ios的安卓系统,带你领略... 你有没有想过,为什么安卓手机那么受欢迎,却还是有人对iOS系统念念不忘呢?其实,现在市面上就有一种神...
安卓系统全能播放器,尽享视听盛... 你有没有发现,手机里总是装满了各种音乐、电影、电视剧,但是找到一个能让你一次性搞定所有播放需求的软件...
在哪里安装安卓系统好,安卓系统... 你有没有想过,为什么安卓系统这么受欢迎呢?它那强大的兼容性和丰富的应用生态,简直让人爱不释手。但是,...
如何自己提升安卓系统,自我提升... 你有没有发现,随着智能手机的普及,安卓系统已经成为了我们生活中不可或缺的一部分呢?但是,你是否想过,...
安卓子系统内存不足,应对策略与... 手机突然卡顿,是不是安卓子系统内存不足在作怪?别急,让我带你一探究竟,揭开这个问题的神秘面纱!一、安...
一鸣安卓系统如何安装,轻松上手... 你有没有想过,给你的安卓手机换换口味?别看它现在运行得风生水起,偶尔来点新鲜玩意儿,岂不是更带劲?今...
安卓操作系统的归属,源自谷歌的... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、处理工作的安卓操作系统,它究竟是谁的孩子呢?今天,就让我...
安卓启动系统设置界面,揭秘安卓... 你有没有发现,每次打开安卓手机,那启动系统设置界面就像是个神秘的宝箱,里面藏着无数的小秘密?今天,就...