docker nodejs nginx socket.io如何获取客户端的实际ip而不是natted ip

时间:2017-11-01 20:59:42

标签: node.js sockets docker nginx docker-compose

我在http://github.com/KPB-US/dispatch-display有一个项目,在其中我根据套接字连接时的ip地址确定显示[客户端]所属的[fire]站点。

我设置了一个docker组合,因此可以使用docker-compose build和docker-compose轻松启动并运行它。这将构建一个nginx服务器,该服务器指向在节点服务器上运行的上游节点应用程序。

当我在docker-compose.yml中的两个服务中指定network_mode:“host”时,一切运行正常。我宁愿让它使用docker默认网络模式更安全地运行 - 但是当我这样做时,我得到NATed [我想,看下面的示例消息]来自客户端的IP地址而不是他们的实际IP地址,所以我不喜欢知道他们来自哪个电台[客户]。

  

已尝试连接,但远程地址未成功   在STATIONS列表中注册 - 172.18.0.1

我根据x-forwarded-for标头确定传入的IP地址,如果丢失,则确定socket.conn.remoteAddress。

关于如何解决这个问题的任何想法?我想将容器与网络隔离(如上所述),但仍然能够知道传入连接的来源。

0 个答案:

没有答案