Configurar el enrutamiento a través de un servidor proxy

Este documento está dirigido a los desarrolladores que quieran enrutar todo el tráfico del etiquetado del lado del servidor a través de un servidor proxy.

Antes de empezar

Para poder configurar el enrutamiento a través de un servidor proxy, necesitas lo siguiente:

  • Un contenedor de servidor desplegado en Cloud Run o mediante la configuración manual.

  • Un servidor proxy desplegado que admita solicitudes HTTP CONNECT.

  • La capacidad de incluir en la lista de permitidos tráfico saliente específico procedente del servidor proxy; por ejemplo, mediante una nube privada virtual (VPC), un cortafuegos o listas de control de acceso (LCAs) de proxy.

Configurar el enrutamiento a través de un servidor proxy

Cloud Run

Para reenviar el tráfico a un proxy en los despliegues de Cloud Run:

  1. Haz clic en Abrir Cloud Run.
  2. Elige tu instancia de Cloud Run de etiquetado del lado del servidor.
  3. Haz clic en EDITAR Y DESPLEGAR NUEVA REVISIÓN. Se abrirá la pantalla de despliegue de la revisión.
  4. En Contenedores, elige tu contenedor de servidor. Se abrirá una pantalla nueva con la configuración del contenedor.
  5. Para mostrar la configuración del servicio, selecciona la pestaña Variables y secretos. Haz clic en el botón Añadir variable y añade la siguiente variable de entorno:

    1. Nombre: HTTP_PROXY
    2. Valor: URI del servidor proxy (por ejemplo, https://proxy.example.com:3333 o http://32.12.83.10)
  6. Haz clic en Hecho.

  7. Confirma las revisiones y haz clic en Desplegar.

Despliegue manual

Para reenviar el tráfico a un proxy en los despliegues manuales:

  1. Define una variable de entorno accesible para la imagen Docker:

    1. Nombre: HTTP_PROXY
    2. Valor: URI del servidor proxy (por ejemplo, https://proxy.example.com o http://32.12.83.10:1234)
  2. Ejecuta la imagen Docker con la nueva variable de entorno.

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

Resultado: El despliegue del etiquetado del lado del servidor envía todo el tráfico saliente al endpoint del proxy que has especificado en la variable de entorno.

Verificar la configuración del servidor proxy

Para verificar la configuración de las solicitudes de proxy, comprueba la configuración de Google Tag Manager y la del servidor proxy.

Para verificar las solicitudes de proxies del contenedor de servidor:

  1. Haz clic en Abrir Google Tag Manager.

  2. Abre tu contenedor de servidor.

  3. Abre el modo Vista previa. En la pestaña Solicitudes:

    1. Asegúrate de que el cliente reclame la solicitud entrante.
    2. Asegúrate de que las etiquetas y las variables envíen correctamente las solicitudes HTTP salientes.
    3. Si quieres comprobar si una solicitud HTTP se ha enviado a través de un servidor proxy, haz clic en ella para ver los detalles de la solicitud HTTP.

Para verificar la configuración del proxy:

  1. Comprueba los registros de la red y del servidor proxy. Como mínimo, deberías ver que se han enviado solicitudes correctamente a los endpoints siguientes:
  2. Comprueba si se han enviado solicitudes a otros endpoints.
  3. Según las funciones de etiquetado del lado del servidor que utilices, puede que también veas solicitudes hechas a otros endpoints, como www.google-analytics.com, bigquery.googleapis.com o endpoints de terceros. Incluye en la lista de permitidos los demás endpoints que necesites para la configuración del etiquetado.

Opcional: Incluir en la lista de permitidos el tráfico saliente del servidor proxy

Si bloqueas el tráfico saliente de tu red o de tu servidor proxy, debes incluir los dominios de Google Tag Manager en la lista de permitidos para que la instancia del servidor de etiquetado funcione. La manera de incluir este tráfico en la lista de permitidos depende de tu entorno de red y del software de proxy. Antes de empezar a incluir endpoints en la lista de permitidos, debes comprender bien la topología de tus redes.

Los siguientes dominios se usan para obtener, previsualizar y depurar tu contenedor de Google Tag Manager:

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

Si alojas tu servidor de vista previa en una red distinta a la del servidor proxy o tienes reglas de red restrictivas, incluye en la lista de permitidos el tráfico saliente del proxy al servidor de vista previa. La URL del servidor de vista previa se define cuando despliegas el contenedor de servidor.

Opcional: Usar la autenticación BÁSICA con el servidor proxy

Si tu organización requiere autenticación, puedes usar la autenticación BÁSICA con todos los tipos de servidor.

Para ello, incluye las credenciales (nombre de usuario/contraseña) en la URL del servidor proxy con el formato siguiente:

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

Cada solicitud enviada al proxy define el nombre de usuario y la contraseña en el encabezado Proxy-Authorization como valores de Base64.

Si utilizas Cloud Run, almacena las credenciales del endpoint del proxy en Secret Manager. Secret Manager da a Cloud Run acceso al secreto en el momento del inicio y resuelve el valor. Consulta cómo configurar secretos en Cloud Run.

Opcional: Inhabilitar el proxy para hosts específicos

La variable de entorno NO_PROXY te permite definir una lista de nombres de host separada por comas que no se puede enviar a través del servidor proxy.

En este ejemplo: NO_PROXY=example.com,169.254.169.254,diagnostics.example2.com:3131

El contenedor de sGTM no envía ninguna de las siguientes solicitudes a través del proxy:

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