Un proxy locale in ascolto accanto a un’applicazione non riproduce una rete che richiede accesso tramite proxy. L’applicazione può ignorare il proxy configurato, connettersi direttamente e comunque segnalare successo.

Separa la rete dell’applicazione dal percorso in uscita del proxy. Una disposizione basata su container colloca l’applicazione solo su una rete interna e assegna al proxy una seconda rete in uscita. In una definizione Compose esistente, gli agganci di rete possono apparire così:

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

Questo è un frammento di rete per servizi già definiti. Configura separatamente il proxy di inoltro approvato e il client effettivo dell’applicazione. Docker documenta le reti interne come isolate dall’esterno; in questa disposizione solo il proxy ha la rete esterna aggiuntiva.

Includi un caso negativo senza uso del proxy: la richiesta esterna dell’applicazione dovrebbe fallire. Con un proxy HTTP autenticato, un account rifiutato dovrebbe produrre il proprio errore di autenticazione, mentre l’account accettato dovrebbe raggiungere la destinazione con una corrispondente osservazione del proxy.

Verifica separatamente i casi consentiti e quelli negati del proxy. Tieni l’applicazione lontana da altre reti esterne ed evita di aggiungere una modalità di rete host che aggiri il proxy. Una richiesta riuscita è una prova utile solo quando il test rende disponibile proprio il percorso previsto.

Articoli correlati