Rails 应用了 CDN 后如何获得真实的用户 IP ?

linsk · 2013年05月01日 · 最后由 lianyutao 回复于 2013年08月23日 · 4992 次阅读

需要获得用户真实的 IP 地址 目前使用 request.remote_ip 但是从 CDN 的入口进去后获取到的 ip 属于 CDN 的 IP。

谢谢

如果真的是 CDN 的请求,根本就不会到你的服务器上去。 弄个 ajax 吧

能用 remote ip 拿到的,都只是反向代理,CDN 是直接传输相应节点上缓存内容给用户的。

cdn 不是只针对静态文件的吗,动态的东西还是走服务器,走了服务器不就自动是真实 ip 了? rails remote ip 模块可以拿到真实地址的啊?还是因为你 cdn 的域名设置有问题,和主域名一样了?还是你的网站首页也 cdn 了?

通过x-forwarded-for头可以获取到,一般提供商都支持的。

#1 楼 @ywencn #2 楼 @kgen #3 楼 @linjunhalida #4 楼 @mojidong

谢谢。我想是我自己搞错了。用的是 ORCA.io 不清楚算 CDN 还是反向代理。

通常可以要求 CDN 服务商转发客户端 IP 过来,就像@mojidong 说的通过 x-forwarded-for

#6 楼 @suupic #4 楼 @mojidong

谢谢。这个方法解决了。

你这个代码还在么?能接我看看么

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册