애플리케이션 옆에서 수신하는 로컬 프록시는 프록시 경유를 요구하는 네트워크를 재현하지 않습니다. 애플리케이션이 설정된 프록시를 무시하고 직접 연결한 뒤에도 성공을 보고할 수 있습니다.

애플리케이션의 네트워크를 프록시의 외부 경로에서 분리합니다. 컨테이너 기반 구성 하나는 애플리케이션을 내부 네트워크에만 두고 프록시에 두 번째 출구 네트워크를 줍니다. 기존 Compose 정의에서 네트워크 연결은 다음과 같이 보일 수 있습니다.

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

이것은 이미 정의된 서비스를 위한 네트워크 조각입니다. 승인된 포워드 프록시와 애플리케이션의 실제 클라이언트를 각각 따로 설정합니다. Docker는 내부 네트워크를 외부에서 격리된 것으로 문서화하며, 이 구성에서 추가 외부 네트워크를 가진 것은 프록시뿐입니다.

프록시 사용을 제거한 부정 사례도 포함합니다. 애플리케이션의 외부 요청은 실패해야 합니다. 인증이 있는 HTTP 프록시에서는 거부된 계정이 인증 실패를 내야 하고, 허용된 계정은 그에 맞는 프록시 관측과 함께 목표에 도달해야 합니다.

프록시의 허용된 사례와 거부된 사례를 각각 따로 시험합니다. 애플리케이션을 다른 외부 네트워크에 두지 말고 프록시를 우회하는 호스트 네트워크 모드를 추가하지 마십시오. 성공한 요청은 테스트가 의도한 경로만 제공할 때에야 유용한 증거가 됩니다.

관련 글