Um proxy local a escutar ao lado de uma aplicação não reproduz uma rede que exige acesso através de proxy. A aplicação pode ignorar o proxy configurado, ligar-se diretamente e ainda assim relatar sucesso.

Separe a rede da aplicação do caminho de saída do proxy. Uma disposição baseada em contentores coloca a aplicação apenas numa rede interna e dá ao proxy uma segunda rede de saída. Numa definição Compose existente, as ligações de rede podem ser assim:

services:
  app:
    networks: [clients]
  proxy:
    networks: [clients, egress]
networks:
  clients:
    internal: true
  egress: {}

Este é um fragmento de rede para serviços já definidos. Configure o proxy de encaminhamento aprovado e o cliente real da aplicação em separado. O Docker documenta as redes internas como isoladas do exterior; nesta disposição apenas o proxy tem a rede exterior adicional.

Inclua um caso negativo sem uso de proxy: o pedido externo da aplicação deve falhar. Num proxy HTTP autenticado, uma conta rejeitada deve produzir o seu erro de autenticação, enquanto a conta aceite deve alcançar o alvo com a correspondente observação do proxy.

Teste em separado os casos permitidos e recusados do proxy. Mantenha a aplicação fora de outras redes externas e evite acrescentar um modo de rede do anfitrião que contorne o proxy. Um pedido bem-sucedido só é prova útil quando o teste disponibiliza exatamente o caminho pretendido.

Artigos relacionados