【问题标题】:How do I get a remote user's IP address on Node.JS when proxied through Apache ProxyPass?通过 Apache ProxyPass 代理时,如何在 Node.JS 上获取远程用户的 IP 地址?
【发布时间】:2014-03-14 14:17:59
【问题描述】:

我们有一个 apache web 服务器,它在 /iptozip 上有一个 proxypass(代理到 localhost:1337,我们的 Node.JS 服务器正在那里监听)

但是,当 Node.JS 服务器收到请求时,它获取的是 Apache Web 服务器的 IP 地址,而不是远程用户的 IP 地址。如何获取远程用户的 IP 地址?

谢谢

【问题讨论】:

    标签: node.js apache proxy


    【解决方案1】:

    如果您的应用位于代理服务器之后,您需要查看 X-Forwarded-For 标头而不是 remote ip address(源 IP)。

    【讨论】:

    • 过来的X-forwarded-for头是apache服务器的IP。如何让它通过正确的 IP?
    • 我无法回答这些,X-Forwarded-For 环境变量也应该默认设置。(使用 apache mod_proxy)。
    • 我想通了 - 我在 Chrome 中处于隐身模式,它与 cookie 搞砸了
    【解决方案2】:

    我在 Apache 代理后面的 node.js Web 服务器上实现了forwarded-for - 就像一个魅力。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    • 哇,7 年多了。而且还是很好的建议!谢谢!
    猜你喜欢
    • 2018-12-07
    • 1970-01-01
    • 2010-09-09
    • 2022-12-10
    • 2010-10-20
    • 2015-06-19
    • 2014-01-10
    • 1970-01-01
    • 2018-03-14
    相关资源
    最近更新 更多