Скрученный в Python проксиклиентный каскад / вверх по течению к squid - PullRequest
4 голосов
/ 10 января 2011

Я хотел бы запустить небольшой прокси-сервер http на моей машине, который отправляет все запросы на восходящий / каскадный прокси-сервер.

Twisted Web HTTP Proxy -> Squid -> Интернет-соединение

К сожалению, я не могу понять, как отправлять все запросы ProxyClient в обратном направлении / каскадировать их в Squid. Не могли бы вы дать мне подсказку?

Нужно ли использовать для этого реактор.connectTCP и HttpClientFactory и каким-либо образом направлять ответ Squid через?

Я использовал следующий пример кода Twisted, чтобы получить закрученный http прокси:

from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys
log.startLogging(sys.stdout)

class ProxyFactory(http.HTTPFactory):
    protocol = proxy.Proxy

reactor.listenTCP(8080, ProxyFactory())
reactor.run()

Спасибо

Mathias

Ответы [ 2 ]

1 голос
/ 11 января 2011

Я думаю, ты слишком усложняешь вещи.Для меня это звучит как то, что вы хотите сделать, это циклическое распределение нагрузки http запросов прокси между двумя сервисами squid.

Если бы это был я, я бы не написал байт кода и не использовал бы что-то внеполка.

Я бы использовал HA-Proxy с такой конфигурацией:

global
        daemon
        maxconn 256

defaults
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

frontend loadbal
        bind *:3128
        default_backend squids
        option http_proxy

backend squids
        option http_proxy
        server squid1 192.168.1.2:3128
        server squid2 192.168.1.3:3128
        balance roundrobin

Возможно, вам придется немного поиграться, для некоторых веб-сервисов может потребоватьсянекоторые виды липкости, но это приложение очень настраиваемо в этом отношении.Похоже, что HA-Proxy v 1.4 поддерживает поддержание активных соединений, что может упростить некоторые из угловых случаев, которые я могу себе представить.

О, также, если вы пытаетесь получить максимальную отдачу от ваших двух соединений,Я бы посоветовал вам настроить ICP между двумя вашими Squid-боксами.

0 голосов
/ 10 января 2011

Звучит как-то twisted.web.proxy.ReverseProxyResource может подойти.

...