Adicionar origem IP ao cabeçalho nginx

Adicionar origem IP ao cabeçalho nginx

Eu tenho uma situação ip_hashno nginx para sessão fixa, onde ele sempre direciona o tráfego para apenas um servidor. O nginx está sendo executado atrás de um balanceador de carga do Google Cloud. A partir do nginx, ele atinge o balanceador de carga GC Kubernetes do meu aplicativo antes de realmente ir para um dos pods.

Acredito que o IP de todos os usuários foi mascarado pelo balanceador de carga do GC para que o nginx os reconheça como uma fonte.

Disseram-me que podemos adicionar o IP original do usuário ao cabeçalho do nginx para que o balanceador de carga seja capaz de reconhecê-los como usuários diferentes. Como posso abordar um? Ou há outra solução?

Responder1

Se você estiver usando o balanceamento de carga de rede (com pools de destino), o balanceador de carga manterá o IP. O que acontece é que o Kubernetes está mudando oIP fontecom os IPs do cluster/nó.

O Kubernetes possui um recurso para preservar o IP de origem do cliente. Você pode verificar nos documentoscomo preservar o IP de origem do cliente nos serviços com Type=LoadBalancer(Balanceamento de carga de rede).

Responder2

Configurarafinidade de sessãodurante a configuração inicial de umconjunto de destinoconfigurando-o para um dos seguintesvalores não padrãopara fornecer o nível desejado desessão pegajosa:

CLIENT_IP

Hashing de 2 tuplas, que usa os IPs de origem e destino. Todas as conexões de um cliente terminarão na mesma instância, independentemente do protocolo, desde que a instância permaneça íntegra.

CLIENT_IP_PROTO

Hashing de 3 tuplas, que usa os IPs de origem e destino e o protocolo. Todas as conexões de um cliente terminarão na mesma instância, desde que usem o mesmo protocolo e a instância permaneça íntegra.

Lakshman Diwaakarrefere-se à configuração de afinidade de sessão como sendo um conjunto de atributos não modificável"durante a criação de"um pool de destino. Sua análise das funcionalidades de balanceamento de carga disponíveis no Cloud Compute pode ser interessante para você revisar:Balanceador de carga de rede versus balanceador de carga HTTP(s).

Responder3

Use o proxy_set_header para adicionar seu IP original ao cabeçalho NGINX. Confira os seguintes exemplos:

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-Host $remote_addr;

proxy_set_header X-Forwarded-For $remote_addr;

Da mesma forma, você pode adicionar sua origem IP ao cabeçalho NGINX.

informação relacionada