Ответ HTTP 304 в сеансе трассировки

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Symptom

В Edge для частного облака при трассировке API в интерфейсе Edge в столбце Статус окна трассировки отображается ответ HTTP 304:

Сообщения об ошибках

Нет сообщений об ошибках – вызов прокси-сервера API возвращает успешный ответ, например HTTP 200. Однако в окне трассировки в интерфейсе Edge отображается ответ HTTP 304, и данные трассировки не собираются.

Возможные причины

В Edge для частного облака интерфейс Edge пытается отследить прокси-сервер API, к которому осуществляется доступ по частному IP-адресу.

Инструмент трассировки в интерфейсе Edge позволяет отправлять запросы к API на любой URL. В сценарии развертывания, когда интерфейс Edge размещается совместно с другими внутренними сервисами, злоумышленник может использовать инструмент трассировки для отправки запросов к сервисам через частный IP-адрес, например localhost или 127.0.0.1.

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

Однако в среде разработки или тестирования можно переопределить это значение по умолчанию, чтобы разработчики API могли отслеживать любой IP-адрес. Как правило, среда разработки или тестирования находится за межсетевым экраном, который не позволяет получить к ней публичный доступ.

Примечание. Рекомендуем оставить значение по умолчанию, чтобы предотвратить доступ к частным IP-адресам даже в среде разработки или тестирования, если только вам не нужно включить его.

Причина: попытка получить доступ к прокси-серверу API через частный IP-адрес

По умолчанию интерфейс Edge для частного облака не позволяет пользователям отслеживать вызовы API, выполненные через частные IP-адреса. В список частных IP-адресов входят:

  • Петлевой адрес (127.0.0.1 или localhost)
  • Локальные адреса сайта (для IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
  • Любой локальный адрес (любой адрес, который разрешается в localhost)

Например, следующая команда curl вызывает прокси-сервер API, используя IP-адрес 127.0.0.1, который считается частным:

curl http://127.0.0.1:9001/myapiproxy

В окне трассировки для этого вызова вы увидите ответ HTTP 304, даже если команда curl вернула успешный результат.

Разрешение

Чтобы включить в интерфейсе Edge отслеживание частных IP-адресов для Edge for the Private Cloud, задайте следующий токен в ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Чтобы задать это свойство:

  1. Откройте файл ui.properties в редакторе. Если файла нет, создайте его.
    vi /opt/apigee/customer/application/ui.properties
  2. Задайте для следующих свойств значение true:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Сохраните изменения в файле ui.properties.
  4. Убедитесь, что файл свойств принадлежит пользователю apigee:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Перезапустите интерфейс Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Теперь в интерфейсе Edge можно получить доступ к частным IP-адресам в инструменте трассировки.

Чтобы позже отключить отслеживание запросов через частные IP-адреса в интерфейсе, измените ui.properties, задав для свойства значение false, а затем перезапустите интерфейс Edge.

Подробнее о том, как разрешить доступ к локальным IP-адресам в интерфейсе Edge…