Configure o squid como um proxy reverso atrás de um proxy transparente

1

Eu tenho uma pergunta sobre como configurar o squid como um proxy reverso por trás de um proxy transparente / de encaminhamento. Basicamente, o que estou procurando é se é possível configurar (B) no seguinte:

Cliente (A) - > Lula como Proxy Reverso (B) - > Lula como Proxy Forward (C) - > Servidores de origem dependendo do URI de solicitação do cliente (D)

Dependendo da solicitação do cliente de (A), (B) poderia rotear a solicitação para diferentes servidores de origem (várias linhas cache_peer). O pedido tem que passar por (C) para alcançar (D), como (C) é a única saída da rede para a internet. Além disso, a lógica de descobrir para onde ir está em (B).

E não temos acesso ou controle de (A) e (C).

Digamos que eu tenha as seguintes linhas cache_peer em (B) e o endereço para (C) seja "forward-proxy.example.com:3128".

cache_peer    origin-x.example.com    parent 443 0 no-query originserver ssl
cache_peer    origin-y.example.com    parent 443 0 no-query originserver ssl
cache_peer    origin-z.example.com    parent 443 0 no-query originserver ssl

Qual seria a sintaxe para configurar (B) para usar "forward-proxy.example.com:3128" (C) como o proxy de encaminhamento para os servidores de origem (D)?

Obrigado!

    
por kid-hac 13.11.2014 / 23:01

1 resposta

0

Sim, isso é possível, embora provavelmente não do jeito que você está pensando.

Você está falando muito sobre C, como se isso importasse; desde que você não tem controle sobre isso, você deve parar de se preocupar com isso. A menos que haja mais de um C, e que possa ser usado para escolher seus servidores de origem, C é totalmente irrelevante ... está apenas no caminho (e impede que você use métodos mais diretos de seleção de servidores de origem).

Você não pode / não pode determinar o servidor de origem neste cenário com as diretivas cache_peer; cache_peer configura como o Squid fala com outros proxies, não com servidores de origem. Como você não pode controlar o meio do Squid, não pode executar nenhuma seleção baseada diretamente no servidor de origem; isto é, o forward proxy está sempre indo para o nome de domínio que você solicitou, e isso não será baseado nos seus critérios de seleção no B. (Se você tivesse controle sobre o outro Squid, você teria mais opções). / p>

Uma maneira de conseguir o que você deseja é dar alguns nomes adicionais aos seus servidores de origem, para que seu primeiro Squid (B) possa reescrever pedidos baseados em URI para novos nomes de domínio, e o meio lula possa fazer solicitações com base no domínio nome.

Você pode usar a opção url_rewrite_helper para fazer uso de um programa de reescrita para alterar o URL da maneira que você escolher. Se fosse eu, provavelmente criaria um novo nome para cada servidor de origem (a, b, c, etc.) e, em seguida, reescreverei com base em qualquer parte dos dados que você tiver para esses nomes. Portanto, se seu URI for " link ", você poderá reescrever isso para " link " e " link " para " link ".

Você precisaria, é claro, configurar os servidores de origem para responder nesses novos domínios e, possivelmente, configurá-los para reconstruir o URI do que ele está recebendo.

Referências:

link

E reescrevendo informações e programa de reescrita de exemplo:

link

Você também pode pular para que o primeiro squid determine a origem e permitir que o aplicativo de origem distribua suas solicitações entre domínios da maneira que fizer sentido, solicitando que o cliente solicite o servidor certo. Espero que isso ajude.

    
por 14.11.2014 / 02:49

Tags