如何在dotcloud上获得真正的客户端IP?

时间:2012-08-07 02:58:31

标签: perl dotcloud dancer

我在dotcloud上使用舞者perl为我的网站。我知道问题是 nginx 的设置。但我试着像这样添加nginx.conf

location / { 
proxy_pass http://127.0.0.1:80; 
proxy_set_header Host $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 

并返回505; 无论如何,在我的代码中,remote_address总是返回10.*.*.*
你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

我找到了解决方案:

my $user_ip = request->env->{'HTTP_X_REAL_IP'};
$user_ip =~ s/^::ffff:(.*)/$1/g;

答案 1 :(得分:0)

您可以考虑使用Plack::Middleware::ReverseProxy