1

我有一个位于 haproxy 后面的 sockjs 服务器。现在我需要一个客户的 IP 地址,但使用self.transport.getPeer()我得到了我的 haproxy 的 IP。Haproxy 在请求中添加一个 X-Forward-For 标头,其中包含原始客户端的 ip。

如何获取在我的协议中发送到服务器的原始 http 请求?

class MyProtocol(LineReceiver):
    def connectionMade(self):
        # this next line only gives me the ip of my proxy
        ip = self.transport.getPeer()

class MyFactory(protocol.ServerFactory):
    protocol = MyProtocol

my_factory = MyFactory()
sockjs_factory = SockJSMultiFactory()
sockjs_factory.addFactory(my_factory, 'echo')

sockjs_service = internet.TCPServer(10000, sockjs_factory)

application = service.Application("frog32")
sockjs_service.setServiceParent(application)
4

0 回答 0