Como posso alcançar esse esquema de balanceamento com o nginx?

3

Eu não sou especialista em networking, mas estou curioso, é possível criar esse esquema com a ajuda do nginx? O objetivo principal é ocultar o endereço IP real do cliente por trás da camada do proxy, onde cada nó do proxy tem seu próprio endereço IP e solicitações de saldo do balanceador de carga (LB) com a regra "round robin". Cliente é algum aplicativo no meu caso e eu quero. O cenário desejado é o seguinte:

O cliente (app) faz o pedido http para some.api.com, LB intercepta o pedido e endereça-o para um dos nós (por exemplo, Proxy 1), o Proxy 1 recebe o pedido e reenvia-o para some.api.com e envia de volta a resposta. Com essa abordagem eu quero evitar limites de taxa que existem em some.api.com. É possível fazer?

    
por jahra 18.05.2018 / 11:25

1 resposta

3

Esse tipo de esquema é chamado de proxy de reenvio - proxy nas solicitações de saída, para ser contrastado com o proxy reverso, que é o proxy nas solicitações de entrada. É possível e fácil de fazer, no entanto, no contexto da limitação da taxa, há pelo menos três questões argumentando contra ela, duas técnicas e uma política -

  1. A maioria dos limites de taxa é aplicada pela chave da API, não pelo endereço IP (embora os limites de taxa IP sejam uma defesa comum de baixo nível.) Se você estiver consumindo uma API autenticada, suas solicitações serão agregadas independentemente do IP

  2. IPs públicos são escassos e a tradução de endereços de rede NAT é comum. Você pode criar um esquema de saldo de carga de proxy de encaminhamento somente para descobrir que seus proxies estão sendo NATed - todos recebem um IP de cliente comum em solicitações de saída - por alguma parte da infraestrutura de downstream

  3. A questão política não desrespeita os limites de taxa do provedor. Se você tem uma necessidade de negócios por mais capacidade, fale com o provedor e pague-o por isso, ou se não puder pagar, explique-o e trabalhe algum acordo com eles.

por 18.05.2018 / 14:12