Карта URL — адресов не работает с внутренним сервисом в балансировщике нагрузки Google Cloud

# #google-app-engine #google-cloud-platform #load-balancing #url-mapping

Вопрос:

Я настраиваю карты URL-адресов в наших внутренних службах с помощью балансировщика нагрузки. Проблема в том, что мои карты URL-адресов по какой-то причине не работают. Когда я попытался просмотреть domain.com/path, это показывает

Запрошенный URL /bpd не был найден на этом сервере.

Я действительно верю, что поступил правильно, но, похоже, это все еще не работает.

Пожалуйста, смотрите скриншот ниже:

[![изображение][1]][1]

/* — работает

/путь 1 и /путь 2 — не работает, показывает ошибку — не найден на этом сервере

файл app.yaml:

 runtime: python27
api_version: 1
threadsafe: true
service: 
handlers:
- url: /
  static_files: 
  upload: 
  secure: always
  redirect_http_response_code: 301

- url: /(.*)
  static_files: www/1
  upload: www/(.*)

 

Я также настроил группу конечных точек бессерверной сети и подключился к движку приложений Google для внутренних служб.

Спасибо всем вам за вашу помощь.

Комментарии:

1. У вас есть журналы на вашем компьютере? Вы видите какой-то входящий запрос, но идете по неверному пути?

2. В дополнение к комментарию Гийома, как настроено ваше приложение.yaml?

3. Я тоже не видел никаких входящих журналов @guillaumeblaquiere

4. @SamuelRomero Я добавил свою конфигурацию yaml

5. как вы вызываете, например, серверную часть верификатора адресов с завитком (который работает)? Можете ли вы показать мне схему?

Ответ №1:

Благодаря вашему комментарию я подумал, что нашел ошибку. Фактически, когда вы определяете карту URL-адресов в балансировщике нагрузки, путь запроса в записи балансировщика нагрузки по умолчанию пересылается как есть на серверную часть.

Давайте возьмемся за ваше дело

  • у вас есть эта карта URL: <URL>/address/* . Ваш URL-адрес-это /address/*
  • Бэкэнд есть <myAddressAppEngine.appspot.com> . Он получил запрос по этому пути <myAddressAppEngine.appspot.com>/address/*

И это не работает, потому что на самом деле вы ожидаете <myAddressAppEngine.appspot.com>/* .


Чтобы решить эту проблему, вы можете использовать расширенный режим на карте URL-адресов

введите описание изображения здесь

Начните с установки бэкэндов по умолчанию для любого URL-адреса и любого пути

введите описание изображения здесь

Затем добавьте новое правило пути и настройте его следующим образом, переписав путь на /

введите описание изображения здесь

Комментарии:

1. Спасибо @Guillaume, я попробую ваше предложение и свяжусь с вами

2. Эта часть задокументирована здесь

3. Спасибо @guillaume. Также работает только 1 карта URL, остальные-нет.