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

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

Симптом

В 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 или локальный хост)
  • Локальные адреса сайта (для 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 вернулась успешно.

Разрешение

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