我有以下设置:
用户发出请求,该请求将发送到 cloudflare,该请求充当请求的代理,并将其重定向到 aws 网络负载均衡器,最终将其路由到其目的地。
在那里我用节点服务器读取它(实际上是用socket.io制作的套接字),并且需要从中获取原始IP。
我试着这样读:
让 ip = socket.request.headers['CF-Connecting-IP'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress
cf 和 aws lb 都设置了 x-forwarded-for。
问题是我得到的是cf ip,而不是最终用户ip。
如果我删除 cf 代理一切都很好。
在我看来, aws lb 正在覆盖标题。知道如何使 aws lb 不被覆盖,而是添加到列表中,或者什么都不做?