Я пытаюсь использовать Twisted.Web framework.
Обратите внимание на трехстрочные комментарии (# line1, # line2, # line3). Я хочу создать прокси (шлюз?), Который будет пересылать запрос на один из двух серверов в зависимости от URL. Если я раскомментирую комментарий 1 или 2 (и оставлю комментарий), запрос будет передан на правильный сервер. Однако, конечно, он не выбирает сервер на основе 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()
Поскольку приведенный выше код в настоящее время стоит, когда я запускаю этот скрипт и перехожу на сервер "localhost: 8080 / ANYTHING_AT_ALL", я получаю следующий ответ.
Метод не разрешен
Ваш браузер подошел ко мне (в / ANYTHING_AT_ALL) с методом "GET". я
здесь разрешены только методы GET, POST.
Я не знаю, что я делаю не так? Любая помощь будет оценена.