프록시 서버 라우팅 설정

이 문서는 프록시 서버를 통해 모든 서버 측 태그 지정 트래픽을 라우팅하려는 개발자를 위해 작성되었습니다.

시작하기 전에

프록시 서버 라우팅을 설정하기 전에 다음 요건을 갖추었는지 확인하세요.

  • Cloud Run이나 수동 설정을 통해 배포된 서버 컨테이너

  • HTTP CONNECT 요청을 지원하는 배포된 프록시 서버

  • 프록시 서버에서의 아웃바운드 트래픽을 허용할 권한(예: VPC, Firewall 또는 프록시 액세스 제어 목록(ACL) 사용)

프록시 서버 라우팅 구성

Cloud Run

Cloud Run 배포를 위해 프록시로 트래픽을 전달하려면 다음 단계를 따릅니다.

  1. Cloud Run을 엽니다.
  2. 서버 측 태그 지정 Cloud Run 인스턴스를 선택합니다.
  3. 새 버전 수정 및 배포 를 클릭합니다. 버전 배포 화면이 표시됩니다.
  4. 컨테이너에서 서버 컨테이너를 선택합니다. 컨테이너 설정을 보여주는 새 화면이 열립니다.
  5. 서비스 구성을 확장하려면 변수 및 보안 비밀 탭을 선택합니다. 변수 추가 버튼을 클릭한 후 다음 환경 변수를 추가합니다.

    1. 이름: HTTP_PROXY
    2. : 프록시 서버의 URI(예: https://proxy.example.com:3333 또는 http://32.12.83.10)
  6. 완료를 클릭합니다.

  7. 버전을 확인한 다음 배포를 클릭합니다.

수동 배포

수동 배포를 위해 프록시로 트래픽을 전달하려면 다음 단계를 따릅니다.

  1. Docker 이미지에서 액세스할 수 있는 환경 변수를 정의합니다.

    1. 이름: HTTP_PROXY
    2. : 프록시 서버의 URI(예: https://proxy.example.com 또는 http://32.12.83.10:1234)
  2. 새 환경 변수로 Docker 이미지를 실행합니다.

    docker run -p 8080:8080 \
    -e CONTAINER_CONFIG=CONTAINER_CONFIG \
    -e HTTP_PROXY=PROXY_URL \
    gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
    

결과: 서버 측 태그 지정 배포에서 모든 아웃바운드 트래픽을 환경 변수에서 지정된 프록시 엔드포인트로 전달합니다.

프록시 서버 설정 인증

프록시 요청 설정을 인증하려면 Google 태그 관리자 및 프록시 서버 구성을 모두 확인하세요.

서버 컨테이너의 프록시 요청을 인증하려면 다음 단계를 따릅니다.

  1. Google 태그 관리자를 엽니다.

  2. 서버 컨테이너를 엽니다.

  3. 미리보기 모드를 엽니다. 요청 탭에서 다음을 확인합니다.

    1. 클라이언트에서 수신 요청을 클레임하는지 확인합니다.
    2. 태그와 변수가 발신되는 HTTP 요청을 전송하는지 확인합니다.
    3. 요청이 프록시 서버를 통해 전송되었는지 확인하려면 HTTP 요청을 클릭하여 HTTP 요청 세부정보를 확인합니다.

프록시 설정을 확인하려면 다음 단계를 따릅니다.

  1. 네트워크 및 프록시 서버 로그를 확인합니다. 최소한 다음 엔드포인트로 요청이 전송되어야 합니다.
  2. 다른 엔드포인트로 전송된 요청이 있는지 확인합니다.
  3. 사용하는 서버 측 태그 지정 기능에 따라 www.google-analytics.com, bigquery.googleapis.com, 서드 파티 엔드포인트 등 다른 엔드포인트로 전달된 요청이 표시될 수 있습니다. 태그 지정 설정에 필요한 다른 엔드포인트를 모두 허용합니다.

선택사항: 프록시 서버에서의 아웃바운드 트래픽을 허용 목록에 추가

네트워크나 프록시 서버에서의 아웃바운드 트래픽을 차단하는 경우, 태그 관리 서버 인스턴스가 올바르게 작동하기 위해서는 Google 태그 관리자 도메인을 허용해야 합니다. 아웃바운드 트래픽을 허용하는 방법은 네트워크 환경과 프록시 소프트웨어에 따라 다릅니다. 엔드포인트를 허용하기 전에 네트워크 토폴로지를 이해하고 있어야 합니다.

다음 도메인은 Google 태그 관리자 컨테이너를 가져오고, 미리 보고 디버그할 때 사용됩니다.

  • https://www.googletagmanager.com
  • https://tagmanager.google.com
  • ${Preview server URL}

프록시 서버가 있는 네트워크와 다른 네트워크에 미리보기 서버를 호스팅하거나 제한적인 네트워크 규칙이 있는 경우 프록시에서 미리보기로 서버로 이동하는 아웃바운드 트래픽을 허용해야 합니다. 미리보기 서버 URL은 서버 컨테이너를 배포할 때 정의됩니다.

선택사항: 프록시 서버에서 BASIC 인증 사용

조직에서 인증이 필요한 경우 모든 서버 유형에서 BASIC 인증을 사용할 수 있습니다.

BASIC 인증을 사용하려면 아래 형식에 나와 있는 것처럼 사용자 인증 정보(사용자 이름 및 비밀번호)를 프록시 서버 URL의 일부로 포함하세요.

HTTP_PROXY=http(s)://USER_NAME:PASSWORD@PROXY_URL

프록시로 전송되는 모든 요청의 프록시-인증 헤더에 사용자 이름과 비밀번호가 Base64 값으로 지정됩니다.

Cloud Run을 사용하는 경우 프록시 엔드포인트 사용자 인증 정보를 Secret Manager에 보관합니다. 시작 시간에 Secret Manager는 보안 비밀에 액세스할 권한을 Cloud Run에 부여하여 값을 해결합니다. Cloud Run에서 보안 비밀을 구성하는 방법을 알아보세요.

선택사항: 특정 호스트에 대해 프록시 사용 중지

NO_PROXY 환경 변수를 사용하여 프록시 서버를 통해 전송될 수 없는 호스트 이름을 쉼표로 구분된 목록으로 정의할 수 있습니다.

예로 NO_PROXY=example.com,169.254.169.254,diagnostics.example2.com:3131을 들어 보겠습니다.

sGTM 컨테이너는 다음 요청을 프록시 처리하지 않습니다.

  • http://example.com, https://sub.example.com, https://other.example.com:123
  • http://169.254.169.254, https://169.254.169.254, http://169.254.169.254:123
  • http://diagonstics.example2.com:3131, https://diagonstics.example2.com:3131