¿Cómo hago para que funcione mi proxy retorcido simple?
Estoy intentando hacer uso deTwisted.Web marco de referencia.
Observe los comentarios de tres líneas (# line1, # line2, # line3). Quiero crear un proxy (puerta de enlace?) Que reenviará una solicitud a uno de los dos servidores dependiendo de la url. Si descomento el comentario 1 o 2 (y comento el resto), la solicitud se envía al servidor correcto. Sin embargo, por supuesto, no elige el servidor en función de la URL.
from twisted.internet import reactor
from twisted.web import proxy, server
from twisted.web.resource import Resource
class Simple(Resource):
isLeaf = True
allowedMethods = ("GET","POST")
def getChild(self, name, request):
if name == "/" or name == "":
return proxy.ReverseProxyResource('localhost', 8086, '')
else:
return proxy.ReverseProxyResource('localhost', 8085, '')
simple = Simple()
# site = server.Site(proxy.ReverseProxyResource('localhost', 8085, '')) #line1
# site = server.Site(proxy.ReverseProxyResource('localhost', 8085, '')) #line2
site = server.Site(simple) #line3
reactor.listenTCP(8080, site)
reactor.run()
Tal como está el código anterior, cuando ejecuto este script y navego al servidor "localhost: 8080 / ANYTHING_AT_ALL" obtengo la siguiente respuesta.
Método no permitido
Su navegador se acercó a mí (en / ANYTHING_AT_ALL) con el método "GET". Solo permito los métodos GET, POST aquí.
No sé lo que estoy haciendo mal? Cualquier ayuda sería apreciada.