2012-01-10 3 views
4

Есть ли способ указать прокси-сервер при использовании urlfetch в Google App Engine?URL-адрес за прокси-сервером при создании App Engine

В частности, каждый раз, когда я делаю вызов с использованием urlfetch, я хочу, чтобы GAE проходил через прокси-сервер. Я хочу сделать это на производстве, а не только на dev.

Я хочу использовать прокси-сервер, потому что есть проблемы с использованием исходящих IP-адресов google (ограничение скорости, отсутствие статического исходящего IP-адреса, иногда в черный список и т. Д.). Обычно установить прокси-сервер легко, если вы можете отредактировать сам HTTP-сообщение, но API GAE, похоже, не позволяет вам это делать.

+0

Как вы думаете, что установка прокси поможет с ограничением скорости и т. Д.? –

+0

@ DanielRoseman - если сторонняя сторона ограничивает запросы на основе IP, использование прокси-сервера поможет. Например, Twitter, ограничивает запросы до 150/час/IP-адресов. –

+0

@ DanielRoseman BenP прав. На каждом IP-адресе GAE есть тысячи приложений, и эти ограничения мгновенно теряются (спасибо за downvote btw). – speedplane

ответ

2

Вы всегда можете свернуть свой собственный:

  1. В случае фиксированного назначения: просто настроить переадресацию фиксированный порт на прокси-сервере. Затем отправляйте запросы от GAE на прокси. Если у вас несколько адресатов, задайте переадресацию на отдельные порты, по одному для каждого адресата.

  2. В случае динамического назначения (слишком много для обработки через фиксированную переадресацию портов) приложение GAE добавляет пользовательский HTTP-заголовок (X-Something), содержащий конечный пункт назначения, а затем подключается к настраиваемому прокси. Пользовательский прокси проверяет это поле и перенаправляет запрос адресату.

+0

Я в той же ситуации, что и @speedplane, это было очень полезно. Никогда раньше этого не делал, существует ли существующий прокси-сервер, который вы бы рекомендовали сделать что-то вроде этого (например, Squid)? –

+1

Привет, Питер, вы знаете прокси-серверную систему, которая может масштабироваться так же хорошо, как GAE? – speedplane

0

Мы столкнулись с этой проблемой и обратились к поддержке Google Cloud. Они предложили использовать гибкий Google App Engine с некоторыми параметрами app.yaml, настраиваемой сетью и ip-forwarding NAT-шлюзом.

Это не сработало для нас, потому что многие функции ядра App Engine Standard не реализованы в App Engine Flexible. По сути, нам нужно будет переписать наш продукт.

Таким образом, чтобы применимо URL выборки появляются запросы, чтобы иметь статический IP-адрес, мы сделали собственный прокси-сервер: https://github.com/csgactuarial/app-engine-proxy

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