将 EC2 实例配置为应用程序负载均衡器的防火墙

将 EC2 实例配置为应用程序负载均衡器的防火墙

我当前的基础设施基本上是 DNS(Route 53)-> WAF -> ALB。WAF 位于负载均衡器前面,带有一些 AWS 托管过滤器。我的应用程序是一个 PHP 网页和一个 API。

现在我正在尝试提高安全性,并一直在尝试 Wallarm。我提升了实例并将其配置为新节点,但现在我很难将 ALB 放在前面。负载均衡器仅监听端口 443。

我所做的是将 DNS 更改为指向 Wallarm 实例的公共 IP(之前将其设置为 ALB 别名),并设置/etc/nginx/conf.d/default.conf如下:

server {
  listen 80;
  listen 443 ssl;

  # the domains for which traffic is processed
  server_name mydomain.com;
  server_name www.mydomain.com;

  # turn on the monitoring mode of traffic processing
  wallarm_mode monitoring;
  wallarm_instance 1;

  location / {
    # setting the address for request forwarding
    proxy_pass https://alb-dns-name.region.elb.amazonaws.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

使用此配置,响应是SSL received a record that exceeded the maximum permissible length

我在那里做错了什么?我对 Apache 有点经验,但对 Nginx 却相当陌生。

答案1

在旧版 Apache 中配置 ProxyPass 时,完整的 ALB 名称有时太长。为了解决这个问题,我们必须在 Route53 域中创建一个较短的名称作为 ALIAS,例如:

alb.mydomain.com.   A ALIAS  alb-dns-name.region.elb.amazonaws.com.

然后执行ProxyPass https://alb.mydomain.com。我想知道这是否是同样的问题?


话虽如此,您需要 ALB 做什么?现在您已经将 Nginx 反向代理加入到组合中,您是否可以将其配置为直接与后端通信?

相关内容