AWS负载均衡获取用户真实IP地址

yum -y install python-pip
pip install --upgrade pip
pip install --upgrade --user awscl
复制代码

注意换成自己的id和key还有可用区

cat <<EOF > ~/.aws/credentials
[default]
aws_access_key_id = ****
aws_secret_access_key = ***
region = ****
EOF

复制代码

2.2 使用命令配置

2.2.1 创建策略

aws elb create-load-balancer-policy --load-balancer-name elb名字  --policy-name EnableProxyProtocol --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
复制代码

2.2.2 启用策略

aws elb set-load-balancer-policies-for-backend-server --load-balancer-name elb名字 --instance-port 443 --policy-names EnableProxyProtocol
aws elb set-load-balancer-policies-for-backend-server --load-balancer-name elb名字 --instance-port 80 --policy-names EnableProxyProtocol

复制代码

2.2.3 查看策略是否生效

yum -y install jq
aws elb describe-load-balancers --load-balancer-name elb名字 | jq '.LoadBalancerDescriptions[].BackendServerDescriptions'
复制代码

返回数据就表示启用成功

[
  {
    "InstancePort": 80,
    "PolicyNames": [
      "EnableProxyProtocol"
    ]
  },
  {
    "InstancePort": 443,
    "PolicyNames": [
      "EnableProxyProtocol"
    ]
  }
]

复制代码

三.nginx配置

3.1 http配置

这里的ip地址是负载均衡内网ip段

set_real_ip_from 172.31.0.0/16;
real_ip_header     proxy_protocol;
复制代码

日志模块配置(nginx1.16.0默认就是这样的)

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

复制代码
我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章