AWS 应用程序部署基础知识:安装NGINX
【.com快译】
介绍
在本系列“AWS应用程序部署基础”的应用程前一篇文章中,我们建立了PostgreSQL数据库,序部然后通过Node.JS应用程序连接到它。署基识安
但是础知,Nodejs应用程序正在同一台计算机上运行,应用程数据库访问是序部本地的。这是署基识安一个完全有效的设置,因为它在同一台机器上,础知所以访问很简单。应用程但是序部,在不同的署基识安机器上运行应用程序和数据库是一种非常常见的设置,我们将在本系列的础知后面部分介绍这条路径。今天,应用程我们将主要关注我们希望在公共子网中的序部 EC2 实例上运行的 Web 服务器。
如果您还记得我们的署基识安 VPC 设置,我们还有一个公共 EC2 实例,我们目前将其用作 Bastian 服务器(又名跳转主机)和 NAT 实例。现在,是将它用作 NGINX Web 服务器。云服务器提供商这是一个 Amazon Linux EC2 实例。
在现实生活中,可能希望在单独的 EC2 实例上运行 NGINX,但是,过程是相同的,为了节省一些时间和成本,我将使用已经运行的 EC2 实例(公共子网)。
架构图
下面是更新的图表,显示了将要设置的 NGINX。
在 Amazon Linux EC2 上安装 NGINX
1. SSH 到 Bastian 服务器(公共 Amazon Linux EC2 实例)
ssh -i ./fm-keypair.pem ec2-user@ip-address-machine //SSH to Bastian Server2. Amazon Linux 上的更新包
sudo yum update // (ubuntu) sudo apt-get update3. 在Amazon Linux 上安装 NGINX
sudo yum install nginx // (Ubuntu) sudo apt-get install nginx4. 使用 Bash 测试安装
安装完成,测试一下,以确认可以正在工作。
nginx -v sudo service nginx status这是操作的输出:
访问Web服务器
NGINX 通常带有一个默认的网站和配置文件,配置为提供默认的网站。
因此,可以使用 curl 在本地访问这个网站:
根据结果,可以看到接收到了默认网站的 HTML。实际上,免费信息发布网如果我们看到了附加到这个实例的安全组,那么:
也可以看到安全组已经配置了入站 HTTP 规则,从而可以从世界任何地方访问此网页。接下来,试一下在 Web 浏览器中使用 Bastian-host(与 NGINX 相同的 EC2)的 Elastic-IP 访问它:
连接 NGINX 与 Node.js 应用程序
接下来做个简单的测试,使用 NGINX 反向代理功能将 NGINX 与 Node.js 应用程序连接起来:
这样,就可以在 PostgreSQL 中获取产品数据了。
准备 Node.JS 应用程序
使用PM2来运行Nodejs 应用程序,PM2 将在后台继续运行节点服务器。
在私有子网中的 EC2 上安装 PM2(Node.JS 应用程序运行和运行应用程序的地方):
1. ssh to ubuntu EC2 2. sudo npm install pm2 -g // Install pm2 3. pm2 start server.js // Run the Server app输出结果为:
pm2的其他相关指令如下:
>> pm2 stop server.js >> pm2 restart server.js另外,在 pm2 网站上还可以查找更多命令。
让我们看看私有子网中连接到 Ubuntu EC2 机器的安全组:
因此,所有来自公共子网的流量都是允许的。在这一点上,我想做的另一项测试是查看是否可以从公共子网(Bastian-host)中的 EC2 实例访问 Node.JS 应用程序。
可以看到,如预期的那样,我们能够从公共 EC2 机器与 Node 应用程序(在私有 EC2 端口 3000 上运行)进行通信。
接下来,b2b供应网设置 NGINX 反向代理。
NGINX 配置
尽量保持细节简单和基本,可以在网上找到有关各种配置的更多信息。
更新 Nginx 配置文件以进行代理配置:
sudo nano /etc/nginx/nginx.conf在 nano 编辑器中打开配置文件,向下滚动直到看到一个服务器块,点击为节点应用程序添加位置 和代理路径信息,如下所示(请注意在端口 3000 上运行 Node.JS 应用程序的 Ubuntu EC2 机器的私有 IP 地址):
location /nodeapp/{ proxy_pass http://10.0.2.99:3000/; }这是公共 EC2 实例上的 Nginx 配置文件。
按 Ctrl+X 保存并关闭文件,重新启动 NGINX 服务。
sudo service nginx restart现在,让我们尝试使用浏览器访问节点应用程序端点:
可以看到,我们能够收到预期的数据。
以下是当前工作负载的更新图表:
NGNIX 是一个轻量级且易于使用的 Web 服务器。可以向运行在不同EC2实例上的不同服务引入多个位置块和代理调用。
总结
在本文中,我们在公有子网中的 EC2 实例上安装了 NGINX。然后进行反向代理配置,将来自上一个post的请求传递给Node.JS应用程序,因为该应用程序可以连接到 PostgreSQL 数据库,所以我们可以通过 HTTP 访问数据。
这是一个非常基本的、常见的web服务器、应用程序和数据库设置,在下一篇文章中,我们将添加更多应用程序、配置并根据需要增强此设计。
【译稿,合作站点转载请注明原文译者和出处为.com】