Как настроить маршрутизацию через прокси-сервер

Этот документ предназначен для разработчиков, которые хотят направить весь трафик, использующий теги на стороне сервера, через прокси-сервер.

Подготовка

Прежде чем настраивать маршрутизацию через прокси-сервер, убедитесь, что у вас есть:

  • Серверный контейнер, развернутый в Cloud Run или с помощью ручной настройки.

  • Развернутый прокси-сервер, поддерживающий запросы HTTP CONNECT.

  • Возможность добавлять в белый список определенный трафик от прокси-сервера, например с помощью VPC, брандмауэра или списков контроля доступа для прокси-сервера.

Как настроить маршрутизацию через прокси-сервер

Cloud Run

Чтобы направить трафик на прокси-сервер для развертываний в Cloud Run, выполните следующие действия:

  1. Откройте Cloud Run.
  2. Выберите экземпляр серверного контейнера, развернутого в Cloud Run.
  3. Нажмите Edit & Deploy New Revision (Изменить и развернуть новую версию) . Появится экран развертывания версии.
  4. В разделе Containers (Контейнеры) выберите серверный контейнер. Появится новый экран с настройками контейнера.
  5. Чтобы открыть конфигурацию сервиса, выберите вкладку Variables & Secrets (Переменные и секреты). Нажмите кнопку Add Variable (Добавить переменную) и добавьте следующую переменную среды:

    1. Название: HTTP_PROXY.
    2. Значение: URI прокси-сервера (например, https://proxy.example.com:3333 или http://32.12.83.10).
  6. Нажмите Done (Готово).

  7. Подтвердите версии и нажмите Deploy (Развернуть).

Ручная настройка

Чтобы направить трафик на прокси-сервер для ручной настройки, выполните следующие действия:

  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 сервера предварительного просмотра определяется при развертывании серверного контейнера.

Как настроить для прокси-сервера базовую аутентификацию (необязательно)

Если для вашей организации требуется аутентификация, вы можете настроить для всех типов серверов базовую аутентификацию.

Для этого включите в URL прокси-сервера учетные данные (имя пользователя и пароль) в следующем формате:

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

При каждом запросе к прокси-серверу учетные данные будут задаваться в заголовке Proxy-Authorization с использованием кодировки 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
.