amazon-web-services - 如何使用代理协议版本 2 通过 AWS 网络负载均衡器获取客户端的真实 IP 地址?
问题描述
目前,我们通过 AWS 网络负载均衡器传递我们的请求,然后传递到 AWS 应用程序负载均衡器。但是,我们正在尝试保留请求的原始 IP 地址,但这已被删除。我们正在尝试启用代理协议 v2,但这会导致错误。AWS ALB 是否使用代理协议 v2?
解决方案
从本文档看来,您在目标群体中执行此操作: https ://docs.amazonaws.cn/en_us/elasticloadbalancing/latest/network/elb-ng.pdf
具体来说:使用新控制台启用代理协议 v2
- 在https://console.amazonaws.cn/ec2/打开 Amazon EC2 控制台。
- 在导航窗格的负载平衡下,选择目标组。
- 选择目标组的名称以打开其详细信息页面。
- 在组详细信息页面的属性部分中,选择编辑。
- 在编辑属性页面上,选择代理协议 v2。
- 选择保存更改。
甚至通过脚本(取自https://docs.cloudbees.com/docs/cloudbees-ci/latest/eks-install-guide/eks-prerequisites-helm-install),例如:
#!/bin/bash -eu
export AWS_PAGER=""
hostname=$(kubectl get -n ingress-nginx services ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')
loadBalancerArn=$(aws elbv2 describe-load-balancers --query "LoadBalancers[?DNSName==\`$hostname\`].LoadBalancerArn" --output text)
targetGroupsArn=$(aws elbv2 describe-target-groups --load-balancer-arn $loadBalancerArn --query TargetGroups[\*].TargetGroupArn --output text)
for targetGroupArn in $targetGroupsArn; do
aws elbv2 modify-target-group-attributes --target-group-arn $targetGroupArn --attributes Key=proxy_protocol_v2.enabled,Value=true --output text
done
推荐阅读
- flutter - 如何在flutter中创建带有firestore图像和onclick启动url的轮播滑块?
- python-3.8 - atlassian_python_api 检查博文是否存在
- c# - 如何使用c#分割字符串
- android - 安卓系统编译后游戏崩溃
- pine-script - PineScript 回溯评估
- php - Twinfield API OAuth2.0 getaccessToken php-twinfield/twinfield
- spleeter - sleeter 单独的视频文件到人声和伴奏,时间长度不同
- grails-4 - Groovy 3 对 Grails 4.0.x 的支持
- tizen - 更新 Big Sur 后为 Mac 安装 Tizen Studio 3.7/4.1 的问题
- python - 如何根据 x 刻度更改条形图中条形的颜色?(Matplotlib,Python)