浏览 558
原文作者:Aidan Carson of NGINX, Robert Haynes of F5
原文链接:动手教程:在AWS中将 NGINX 和 NGINX Plus 设置为 Web 服务器和反向代理 - NGINX
转载来源:NGINX 官方网站
自 NGINX 推出以来,15年里其人气一直稳步上升,现已成为世界上最受欢迎的 Web 服务器,并为 4 亿多个网站提供支持。因此,我们建议您相信大众的判断,使用 NGINX 来满足所有 web 服务需求,也可以将 NGINX 用作反向代理、内容缓存、负载均衡器、API 网关等等。
完成本文给出的步骤后,您可能还希望继续学习后面的 NGINX Core 培训课程(讲师授课或在线观看),该课程全天授课,教您如何配置、治理及管理 NGINX。此外,我们还为您提供了其他讲师授课或点播观看的高级主题课程。
terminal
,然后按 Enter 键。这时会打开一个独立的终端窗口。ssh
客户端。注:以下 EC2 实例的创建过程和屏幕截图在撰写本文之时已经过验证,但AWS随时可能会更改。因此,请根据实际情况进行必要调整。
点击表格下方的添加规则(Add Rule)按钮,然后从类型(Type)列的下拉菜单中选择HTTP。在本教程中,我们允许从任何 IP 地址访问实例(来源(Source)列中的值为Anywhere 0.0.0.0/0, ::/0)。对于生产环境,我们建议您遵循页面上的警告,该警告要求必须使用安全组来控制访问。
重复上述 HTTPS 设置步骤。
点击页面底部的查看并启动(Review and Launch)按钮。
从上面的下拉菜单中选择创建一个新密钥对。
选择密钥对类型。在本教程中,我们选择的是 RSA。
在密钥对名称字段中输入一个名称,例如 NGINX_key。
点击下载密钥对(Download Key Pair)按钮。
如下面的动画截图所示,下载密钥对(Download Key Pair)按钮变成了复选框。选中复选框表示您可以访问私钥。
点击启动实例(Launch Instances)按钮。
点击名称列中的铅笔图标。
在编辑名称弹窗中输入名称,然后点击保存(Save)按钮。
现在,AWS环境已设置完成,接下来将安装 NGINX 开源版 或 NGINX Plus(可免费试用 30 天)。这两个选项都可以参照本教程,但如果您想进一步探索 NGINX Plus 的高级功能,请申请免费试用。
大多数 Linux 发行版和 BSD 派生版本都在标准软件包库中提供 NGINX 开源版,但通常不是最新版本。我们建议您直接从 nginx.org.下载 NGINX 开源版。将 NGINX 仓库添加到 Ubuntu 软件包管理器(apt
)只需要几个额外的步骤。
安装 NGINX 开源版请执行下列步骤:
下载 NGINX 签名密钥:
$ sudo wget http://nginx.org/keys/nginx_signing.key
添加密钥:
$ sudo apt-key add nginx_signing.key
进入目录 /etc/apt。
$ cd /etc/apt
编辑 sources.list 文件,并在末尾添加以下文本:
deb http://nginx.org/packages/ubuntu focal nginx
deb-src http://nginx.org/packages/ubuntu focal nginx
注:每行中的 focal
键字都对应 Ubuntu 20.04。如果您使用的是另一个版本的 Ubuntu,请替换其版本的 code name(例入对于 Ubuntu 18.04, 就用 bionic
)。
更新 NGINX 软件:
$ sudo apt-get update
安装 NGINX:
$ sudo apt-get install nginx
出现提示时输入 Y
。
启动 NGINX:
$ sudo systemctl start nginx.service
检查 NGINX 状态:
$ sudo systemctl status nginx.service
继续打开网页(见下文)。
如果您还没有 NGINX Plus,请注册 30 天免费试用版。
当您收到通知您试用订阅可用的邮件后,请按照邮件提供的说明下载安全证书、私钥和 JWT,然后安装 NGINX Plus。
安装完成且 NGINX Plus 运行时,继续打开网页(见下文)。
现在您已启动了 NGINX 软件,在配置 NGINX 和 NGINX Plus 以提供网站内容之前,先查看它们默认提供的网页。操作步骤如下:
导航到 EC2 仪表盘上的实例(Instances) 选项卡(如果您尚未进行此操作)。(一种方法是点击顶部“控制台”导航栏中的服务(Services)、计算(Compute)部分的 EC2 及左侧导航栏中的实例(Instances)。)
向右滚动表格,直到在公共 IPv4 地址列中看到实例的公共 IP 地址(如下面屏幕截图中为 3.22.51.xxx)。选择地址并将其复制到粘贴缓冲区。
打开一个新的浏览器选项卡,并将地址粘贴到地址栏。出现默认的欢迎使用 NGINX!(Welcome to nginx!) 页面,3.这说明 NGINX 已安装运行,但还没有进行配置。
安装好 NGINX 或 NGINX Plus 后,接下来就是好好利用它了!首先可以设置一些文件和目录。
进入主目录(如果您尚未进行此操作)。在以下说明中,主目录为 /home/ubuntu。
创建一个名为 public_html 的目录并进入该目录。
在 public_html 目录下,创建一个名为 index.html 的文件和一个名为 application1的目录。
在 application1 目录下,创建一个名为 app1.html 4.的文件(写入一些文本)。
返回您的主目录。
创建一个名为 data 的目录。
在 data 目录下,创建一个名为 images的目录。
NGINX 或 NGINX Plus 的第一个用例是通过网页向用户提供页面和图像。
将目录更改为 /etc/nginx/conf.d。
将 default.conf 重新命名为 default.conf.bak,以防止 NGINX 或 NGINX Plus 将它用作默认配置文件。
创建一个名为 server1.conf 的文件,其中包含以下配置:
server {
root /home/ubuntu/public_html;
location /application1 { }
location /images {
root /home/ubuntu/data;
}
}
将目录更改为 ~/data/images。
找到您要提供的图像并将其复制到目录(~/data/images)。例如,以下命令复制了 NGINX 标志:
$ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
重新加载 NGINX 或 NGINX Plus:
$ sudo nginx -s reload
在一个 Web 浏览器中,请求以下 URL 的图像,其中 NGINX-server 是您的 EC2 实例的公共 IP 地址:
https://NGINX-server/images/NGINX-logo.png
您还可以访问该应用并观察您所得到的内容:
https://NGINX-server/application1/app1.html
您已经有了一个可以正常工作的 Web 服务器,现在可以开始学习如何配置流量路由了。该功能支持您将流量传输到其他服务器,同时也是设置负载均衡的重要一步。操作步骤如下:
在 ~/data 目录下,创建一个名为 server2 的目录。
在 server2 目录下,创建一个名为 sampleApp 的目录。
在 sampleApp 目录下,创建一个名为 index.html 的文件(写入一些文本)。
将目录更改为 /etc/nginx/conf.d。
创建一个名为 server2.conf 的文件,其中包含以下配置:
server {
listen 8080;
root /home/ubuntu/data/server2;
}
在第一个 location
块中添加 proxy_pass
指令,以修改 server1.conf,如下所示:
server {
root /home/ubuntu/public_html;
location /application1 {
proxy_pass http://localhost:8080/sampleApp;
}
location /images {
root /home/ubuntu/data;
}
}
指令文档:location、proxy_pass、root、server
重新加载 NGINX 或 NGINX Plus:
$ sudo nginx -s reload
在浏览器中访问以下 URL,观察与您在“提供页面和图像” 中访问它时相比有哪些变化:
https://NGINX-server/application1/index.html
以上就是本文的全部内容!现在您有了一个运行 NGINX 的 Ubuntu 实例,并可以作为代理服务器运行了。
有关在AWS上部署 NGINX 和 NGINX Plus 的更多用例的说明,请参阅我们的部署指南。
本教程介绍了如何设置 NGINX 或 NGINX Plus,以便通过互联网提供文件和图像,并且充当反向代理。如果您想深入了解 NGINX,我们还提供了 NGINX Core 培训课程(讲师授课 或 点播观看)课程涵盖了本教程的主题,以及更多关于 Web 服务和应用交付的要点,包括负载均衡、基于位置的路由和安全防护。您还可以查看 nginx.org 的文档 和 NGINX Plus 管理指南 —— (这些文章适用于 NGINX 开源版和 NGINX Plus,特别注明的除外)。
请前往NGINX开源社区:
按点赞数排序
按时间排序