首页 > 解决方案 > 如何配置 AWS ELB 来代替 NGiNX 服务器及其设置?

问题描述

我想知道,我们如何才能完全迁移NGiNXAWS ELB包括SSL(AWS 证书)?

我的域之一具有以下NGiNX配置(例如,example.com

server {
    listen 80;
    server_name *.example.com;
    root /home/ubuntu/angularApp;
    index    index.html index.htm;

    location / {
      try_files $uri $uri/ /index.html;
    }

}


server {
  listen 80;
  server_name example.com;

  root /home/ubuntu/website;
  index    index.html index.htm;

  location / {
    try_files $uri $uri/ /index.html;
  }

  location ~ ^/api/(v1|v2)/ {
    proxy_pass http://backend_service$request_uri;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Google-Real-IP $remote_addr;

  }

}

我主要有2个查询,

Query#1 :-如果请求的 URL 包含/属于, 如何配置设置(in ELB),否则请参考其他目录的 index.html 文件而不是 Angular-App。Angular-App pagessubdomain

查询#2 :- 如果ELB传入EC2请求URI包含/api/v1//api/v2/

注意 - 我已经批准了我们可以在 ELB 中配置的 AWS SSL 证书。所以关于 SSL 证书不会有任何问题。目前我使用的不是配置到 NGiNX 中的 AWS 的 SSL 证书,但我计划使用 AWS ACM,因为所有其他东西都属于 AWS。

任何帮助都会非常明显!

标签: amazon-web-servicesnginxamazon-ec2amazon-elbaws-load-balancer

解决方案


您需要执行以下操作:

  1. 确保 LB 可以访问机器。在这里,您需要保留当前的公共子网与私有子网、安全组等。
  2. 进入创建负载均衡器界面。选择所需的负载均衡器类型。对于 Web 应用程序,当前推荐的方法是 ALB(三个选项中的第一个)。在此处输入图像描述. 您也可以使用 Clasic LB。
  3. 然后配置LB的基础,名称,80和443上的监听器,VPC和正确的子网。在此处输入图像描述
  4. 接下来,您可以选择现有证书或放置新证书。在此处输入图像描述如果您有多个域,这里值得一提的是,您需要一个对您要使用的所有域都有效的证书。为此,您可以获得通配符证书等。
  5. 接下来是选择安全组(SG 从现在开始)。您需要确保您选择的 SG 允许通过 http 和 https 进行连接。在此处输入图像描述
  6. 然后确保指向正确的目标群体。在此处输入图像描述. 在这里,请继续介绍 ALB 的优点之一是您可以为不同的子域设置不同的目标组等。这是其他类型的经典 LB 的一个非常重要的优势。在您的情况下,如果您没有多个子域,那么您只需将其全部传递到 TCP 端口上的同一台机器上,可能只是 80,nginx 或其他服务器将在那里侦听并决定如何处理不同的请求。说/api/v1//api/v2/可以去不同的后端。在这里,当您配置时,您可以选择目标后端的 IP,如果您愿意,而不是选择实例(这是默认设置)。
  7. 然后在下一步中选择目标实例或 IP。例如,如果您选择实例,您应该能够看到所需的一个或多个实例。
  8. 现在你应该完成了。转到审查步骤,检查一切是否良好并创建您的 LB。
  9. 接下来是检查某个时间后(一分钟左右)后端是否应该显示为健康的。

我希望这在一定程度上回答了你的问题。官方文档在这里以获取更多信息或随时进一步询问。


推荐阅读