Temos um requisito comercial para canalizar todas as conexões de saída de vários servidores de processamento por meio de um único endereço IP.
Nossa configuração é a seguinte:
Temos um servidor nginx que funciona como um balanceador de carga para solicitações http de entrada. Em seguida, temos vários servidores da web, que se conectam a servidores de processamento que, por sua vez, se conectam aos bancos de dados de nossos clientes.
Cliente - > Loadbalancer - > Servidores da Web - > Servidores de processo - > Banco de Dados
Cliente < - Loadbalancer < - Servidores da Web < - Servidores de processos < - Banco de dados
Atualmente, fornecemos aos nossos clientes uma lista de endereços IP que eles devem adicionar à sua lista de permissões de banco de dados. No entanto, à medida que dimensionamos essa lista de permissões, ela se tornará mais longa e, por sua vez, nossos clientes precisarão atualizar novamente sua lista de permissões, respectivamente.
Configuração desejada
Para contornar isso, gostaríamos de canalizar todas as conexões de saída através de outro servidor nginx, que iria mascarar os endereços IP de nossos servidores de processamento. Por sua vez, agora teríamos apenas um endereço IP que nossos clientes colocariam na lista de permissões.
Cliente - > Loadbalancer - > Servidores da Web - > Servidores de processo - > Mascaramento de IP - > Banco de Dados
Cliente < - Loadbalancer < - Servidores da Web < - Servidores de processo < - IP Masking < - Banco de dados
Isso é possível somente com o nginx? Em caso afirmativo, quais etapas precisaríamos adotar para alcançar isso?