在 Amazon EC2 实例上部署 NextJS 应用

2025-06-08

在 Amazon EC2 实例上部署 NextJS 应用

Next.js 是由 Vercel 创建的开源 JavaScript 框架,它支持您使用 React 和服务器端渲染的强大功能构建超快且极其用户友好的静态网站和 Web 应用程序。服务器端渲染是指网页内容在服务器上渲染,而不是使用 JavaScript 在浏览器上渲染。

与通常将.js文件发送到浏览器的 React 应用不同,浏览器 JavaScript 引擎会在.js文件加载后创建标记。传统的 SSR 语言/框架包括 PHP、Java、ASP.NET 和 Node.js。

服务器端渲染(SSR)具有以下优点:

  • 表现
  • 搜索引擎可见性
  • 用户体验
  • 社交分享

并非所有应用程序都需要服务器端渲染,尤其是具有仪表板和身份验证且不需要 SEO 或通过社交媒体共享的应用程序。

尽管 Next.js 的优点大于缺点,但仍然值得讨论:

  1. Next.js 不提供任何内置首页,因此我们需要创建您的前端,这将需要不时进行更改,从而产生额外的费用。

  2. Next.js 需要使用 Redux、Mobx 或其他工具来管理应用程序状态。
    可用的插件并不多。

  3. Next.js 拥有广泛而强大的社区和支持,它被 Netflix、Uber、星巴克和 Twitch 等全球最大和最受欢迎的公司广泛使用。

在 Vercel 上部署很容易,但对于新手和想要在 EC2 实例上部署的人来说,这可能是一个挑战。

为什么 Amazon EC2 实例是一项重要的服务?

Amazon EC2 是增长最快的 AWS 云计算服务之一,它提供虚拟服务器来管理任何类型的工作负载。它通过最合适的处理器、网络设施和存储系统来构建计算基础设施。因此,它能够精确地适应工作负载。Amazon
EC2 使您能够根据需求变化或人气高峰进行扩展或缩减,从而减少您对流量预测的需求。

在 EC2 上托管 NextJs 应用

在 AWS EC2 上托管 Next.js 应用是热门选择之一,我们也在多个内部项目中使用了它。在本文中,我们将了解如何在作为 AWS EC2 实例托管的 Ubuntu 上使用 Nginx 部署现有的 Next.js 应用。

注意:要检查域名是否正确指向服务器的 IP,请访问https://dnschecker.org

如果您尚未注册域名,您可以从 AWS 或其他提供商(如 GoDaddy、Google(我最喜欢的)或 Namecheap 等)购买。

注意:创建实例后,您将获得一个 .ppk 文件,需要将其转换为 .pem 文件

具体步骤如下:

$ brew install putty

$ puttygen key.ppk -O private-openssh -o key.pem

Enter fullscreen mode Exit fullscreen mode

步骤 1:创建一个 EC2 实例,并确保它已安装 Node.js 和 npm。您可以使用预装的 Amazon 系统映像 (AMI) 来执行此操作,也可以在启动实例后手动安装。

步骤 2:连接到现有的 EC2 实例:

 ssh -i <.pem file path>  ubuntu@<server ip>
Enter fullscreen mode Exit fullscreen mode

步骤 3:指向您想要部署应用程序的文件夹

步骤 4:拉取代码并验证存储库

git pull 
Enter fullscreen mode Exit fullscreen mode

步骤 5:如果应用已在运行,需要重新部署,则需要在部署新更改之前终止现有应用进程。要检查我们正在监听的端口,请使用以下命令(可选)

sudo ss -lptn 'sport = :3000' 
Enter fullscreen mode Exit fullscreen mode

第六步:终止当前进程

kill -9 <PID>
Enter fullscreen mode Exit fullscreen mode

步骤 7:执行以下命令使其启动并运行。确保“&”表示您可以断开应用程序的连接而不终止它。

yarn install
yarn build then yarn start & 
Enter fullscreen mode Exit fullscreen mode

就这样!您的 Next.js 应用程序现在应该在附加域或 EC2 实例的公共 IP 地址上的 EC2 实例上启动并运行。

鏂囩珷鏉ユ簮锛�https://dev.to/hiteshnalamwar/deploying-nextjs-app-on-amazon-ec2-instance-19l1
PREV
聊天机器人技术的进步将如何改善用户体验!
NEXT
提供免费渐变和配色方案/调色板的最佳网站,可加快工作流程调色板和渐变