AWS 应用程序部署基础知识:安装NGINX

介绍

在本系列“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 实例)

 
 
 
 
  1. ssh -i ./fm-keypair.pem ec2-user@ip-address-machine //SSH to Bastian Server 

2. Amazon Linux 上的更新包

 
 
 
 
  1. sudo yum update // (ubuntu) sudo apt-get update 

3. 在Amazon Linux 上安装 NGINX

 
 
 
 
  1. sudo yum install nginx // (Ubuntu) sudo apt-get install nginx 

4. 使用 Bash 测试安装

安装完成,测试一下,以确认可以正在工作。

 
 
 
 
  1. nginx -v  
  2. 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. 1. ssh to ubuntu EC2  
  2. 2. sudo npm install pm2 -g     // Install pm2  
  3. 3. pm2 start server.js    // Run the Server app 

输出结果为:

pm2的其他相关指令如下:

 
 
 
 
  1. >> pm2 stop server.js  
  2. >> pm2 restart server.js 

另外,在 pm2 网站上还可以查找更多命令。

让我们看看私有子网中连接到 Ubuntu EC2 机器的安全组:

因此,所有来自公共子网的流量都是允许的。在这一点上,我想做的另一项测试是查看是否可以从公共子网(Bastian-host)中的 EC2 实例访问 Node.JS 应用程序。

可以看到,如预期的那样,我们能够从公共 EC2 机器与 Node 应用程序(在私有 EC2 端口 3000 上运行)进行通信。

接下来,设置 NGINX 反向代理。

NGINX 配置

尽量保持细节简单和基本,可以在网上找到有关各种配置的更多信息。

更新 Nginx 配置文件以进行代理配置:

 
 
 
 
  1. sudo nano /etc/nginx/nginx.conf 

在 nano 编辑器中打开配置文件,向下滚动直到看到一个服务器块,点击为节点应用程序添加位置 和代理路径信息,如下所示(请注意在端口 3000 上运行 Node.JS 应用程序的 Ubuntu EC2 机器的私有 IP 地址):

 
 
 
 
  1. location /nodeapp/{   proxy_pass http://10.0.2.99:3000/; } 

这是公共 EC2 实例上的 Nginx 配置文件。

按 Ctrl+X 保存并关闭文件,重新启动 NGINX 服务。

 
 
 
 
  1. sudo service nginx restart 

现在,让我们尝试使用浏览器访问节点应用程序端点:

可以看到,我们能够收到预期的数据。

以下是当前工作负载的更新图表:

NGNIX 是一个轻量级且易于使用的 Web 服务器。可以向运行在不同EC2实例上的不同服务引入多个位置块和代理调用。

总结

在本文中,我们在公有子网中的 EC2 实例上安装了 NGINX。然后进行反向代理配置,将来自上一个post的请求传递给Node.JS应用程序,因为该应用程序可以连接到 PostgreSQL 数据库,所以我们可以通过 HTTP 访问数据。

这是一个非常基本的、常见的web服务器、应用程序和数据库设置,在下一篇文章中,我们将添加更多应用程序、配置并根据需要增强此设计。

【译稿,合作站点转载请注明原文译者和出处为.com】

网站标题:AWS 应用程序部署基础知识:安装NGINX
文章起源:http://www.hantingmc.com/qtweb/news19/362219.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联