Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在弹性负载平衡器下使用EC2上的Nginx获取客户端IP_Django_Nginx_Amazon Ec2_Amazon Elb - Fatal编程技术网

Django 在弹性负载平衡器下使用EC2上的Nginx获取客户端IP

Django 在弹性负载平衡器下使用EC2上的Nginx获取客户端IP,django,nginx,amazon-ec2,amazon-elb,Django,Nginx,Amazon Ec2,Amazon Elb,我有一个运行Nginx+Gunicorn+Django的EC2实例放在弹性负载平衡器下。ELB针对双堆栈(IPv4和IPv6地址)启用。我在Nginx中设置了以下配置: proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 在Django视图中,我试图获得IP地址,如下所示: def get_client_ip(request): x_f

我有一个运行Nginx+Gunicorn+Django的EC2实例放在弹性负载平衡器下。ELB针对双堆栈(IPv4和IPv6地址)启用。我在Nginx中设置了以下配置:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
在Django视图中,我试图获得IP地址,如下所示:

def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip
这将返回ELB的私有IP,而不是客户端IP