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

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

Симптом

В 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, который считается частным IP-адресом:

curl http://127.0.0.1:9001/myapiproxy

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

Разрешение

Чтобы включить отслеживание частных IP-адресов в пользовательском интерфейсе Edge для частного облака, установите следующий токен в файле 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.

Дополнительную информацию см. в разделе «Предоставление пользовательскому интерфейсу Edge доступа к локальным IP-адресам» .