跳到主要内容

Nginx AWS 部署

介绍

Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,广泛用于现代 Web 应用程序中。AWS(Amazon Web Services)是全球领先的云服务平台,提供了丰富的计算、存储和网络服务。将 Nginx 部署在 AWS 上,可以帮助你构建高可用性、可扩展的 Web 服务。

本教程将带你从零开始,逐步学习如何在 AWS 上部署 Nginx。我们将涵盖以下内容:

  1. 创建 AWS EC2 实例
  2. 安装和配置 Nginx
  3. 配置安全组和网络设置
  4. 测试 Nginx 部署
  5. 实际应用案例

创建 AWS EC2 实例

首先,我们需要在 AWS 上创建一个 EC2 实例。EC2 是 AWS 提供的弹性计算服务,允许你在云中运行虚拟机。

步骤 1: 登录 AWS 控制台

访问 AWS 控制台 并使用你的 AWS 账户登录。

步骤 2: 启动 EC2 实例

  1. 在 AWS 控制台中,导航到 EC2 服务。
  2. 点击 Launch Instance 按钮。
  3. 选择一个 Amazon Machine Image (AMI),例如 Amazon Linux 2 AMI
  4. 选择一个实例类型,例如 t2.micro(免费套餐适用)。
  5. 配置实例详细信息,例如网络和子网。
  6. 添加存储(默认 8GB 通常足够)。
  7. 配置安全组,允许 HTTP (端口 80) 和 SSH (端口 22) 流量。
  8. 启动实例并下载密钥对(.pem 文件)。
备注

确保你保存好密钥对文件,因为它是你连接到 EC2 实例的唯一方式。

安装和配置 Nginx

接下来,我们将在 EC2 实例上安装和配置 Nginx。

步骤 1: 连接到 EC2 实例

使用 SSH 连接到你的 EC2 实例:

bash
ssh -i /path/to/your-key.pem ec2-user@your-ec2-public-ip

步骤 2: 更新系统并安装 Nginx

在连接到 EC2 实例后,首先更新系统包:

bash
sudo yum update -y

然后安装 Nginx:

bash
sudo amazon-linux-extras install nginx1 -y

步骤 3: 启动并启用 Nginx

安装完成后,启动 Nginx 服务并设置为开机自启:

bash
sudo systemctl start nginx
sudo systemctl enable nginx

步骤 4: 验证 Nginx 安装

在浏览器中访问你的 EC2 实例的公共 IP 地址,你应该会看到 Nginx 的欢迎页面。

配置安全组和网络设置

为了确保你的 Nginx 服务器可以通过互联网访问,你需要配置安全组以允许 HTTP 流量。

步骤 1: 编辑安全组

  1. 在 AWS 控制台中,导航到 EC2 > Instances
  2. 选择你的实例,然后在 Description 选项卡中找到 Security groups
  3. 点击安全组名称,进入安全组配置页面。
  4. 点击 Edit inbound rules
  5. 添加一条规则,允许 HTTP 流量(端口 80)来自 0.0.0.0/0(即所有 IP 地址)。

步骤 2: 测试访问

再次访问你的 EC2 实例的公共 IP 地址,确保 Nginx 欢迎页面可以正常显示。

实际应用案例

假设你正在开发一个简单的静态网站,并希望将其部署在 AWS 上。你可以使用 Nginx 作为 Web 服务器来托管你的网站。

步骤 1: 上传网站文件

将你的网站文件上传到 EC2 实例的 /usr/share/nginx/html 目录:

bash
scp -i /path/to/your-key.pem -r /path/to/your-website/* ec2-user@your-ec2-public-ip:/usr/share/nginx/html/

步骤 2: 重启 Nginx

上传完成后,重启 Nginx 以应用更改:

bash
sudo systemctl restart nginx

步骤 3: 访问网站

在浏览器中访问你的 EC2 实例的公共 IP 地址,你应该会看到你的网站内容。

总结

通过本教程,你学会了如何在 AWS 上部署 Nginx。我们从创建 EC2 实例开始,逐步完成了 Nginx 的安装、配置和安全组设置。最后,我们还通过一个实际案例展示了如何使用 Nginx 托管静态网站。

附加资源

练习

  1. 尝试在 AWS 上部署一个动态网站,使用 Nginx 作为反向代理,将请求转发到后端应用服务器(如 Node.js 或 Django)。
  2. 配置 Nginx 以支持 HTTPS,使用 AWS Certificate Manager 获取 SSL 证书。
提示

如果你在练习中遇到问题,可以参考 AWS 和 Nginx 的官方文档,或者加入相关的开发者社区寻求帮助。