NGINX做TCP转发到后端服务器,后端服务器如何获取到用户的真实IP地址?NGINX服务器和后端服务器不在同一个网段

发布于 2022-09-05 01:49:08 字数 551 浏览 24 评论 0

最近有一个需求是需要通过一台中转服务器转发TCP请求到真实的后端服务器,但是现在遇到的问题是后端服务器没法获取到用户的真实IP。

请注意是TCP连接,不是HTTP,是NGINX的stream模块里的功能,网上查了很多资料,NGINX官方文档说是可以解决的,但是没有给出详细的操作指导,希望已经实现的朋友可以帮忙解答下,另外问下LVS做负载的话,不在同一网段的机器,后端服务器是否可以获取到客户端真实IP?可以的话麻烦给下相关的文章连接。

参考文档:
https://nginx.org/en/docs/str...
https://www.nginx.com/blog/tc...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慕烟庭风 2022-09-12 01:49:08

LVS在nat或者fullnat模式下,默认都是不能获取到真实IP的。

阿里的fullnat可以通过TCP Option传递真实IP给后端。

nginx的stream模块可以通过 proxy protocol https://www.haproxy.org/downl... 来传递真实IP。

两者都有一个共同点:

后端需要修改代码才能获取到这个IP。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文