haproxy の背後にある sockjs サーバーがあります。ここで、クライアントの IP アドレスを取得する必要がありますが、これを使用しself.transport.getPeer()
て haproxy の IP を取得します。Haproxy は、元のクライアントの IP を含む X-Forward-For ヘッダーをリクエストに追加します。
プロトコルでサーバーに送信された元の 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)