Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
При взаимодействии клиент-сервер сервер отвечает кодом состояния HTTP 405 Method Not Allowed
если метод HTTP-запроса , представленный клиентом, известен серверу, но не поддерживается целевым ресурсом. Аналогично в Apigee Edge внутренний сервер может ответить ответом с кодом состояния HTTP 405 Method Not Allowed.
Apigee Edge ожидает, что внутренний сервер отправит ответы 405 Method Not Allowed
со списком разрешенных методов в заголовке Allow
в соответствии со спецификацией RFC 7231, раздел 6.5.5: 405 Method Not Allowed .
Заголовок Allow
необходимо отправлять в следующем формате:
Allow: HTTP_METHODS
Например, если ваш серверный сервер поддерживает методы GET
, POST
и HEAD
, вам необходимо убедиться, что заголовок Allow
содержит их следующим образом:
Allow: GET, POST, HEAD
Если внутренний сервер не отправляет заголовок Allow
с кодом состояния HTTP 405 Method Not Allowed,
Apigee возвращает код состояния HTTP 502 Bad Gateway
с кодом ошибки protocol.http.Response405WithoutAllowHeader
клиентскому приложению. Рекомендуемое решение для устранения этой ошибки — исправить внутренний сервер, чтобы он соответствовал спецификации RFC 7231, раздел 6.5.5: 405 Method Not Allowed , или использовать обработку ошибок для ответа с кодом состояния HTTP 405 Method Not Allowed
, включая заголовок Allow
. как описано в руководстве по устранению неполадок 502 Bad Gateway — Response 405 без заголовка Allow .
Однако в некоторых исключительных случаях может быть невозможно исправить серверную часть или изменить прокси-сервер API для немедленного решения этой проблемы.
В таких случаях вы можете временно установить заголовок ignoreallow для свойства 405
HTTP.ignore.allow_header.for.405
на уровне процессора сообщений. Установка для этого свойства значения true
не позволяет Apigee возвращать ответ 502 Bad Gateway
клиентским приложениям, даже если внутренний сервер отправляет код состояния HTTP 405 Method Not Allowed
без заголовка Allow
.
Как только вы сможете исправить свой внутренний сервер для отправки кода состояния HTTP 405 Method Not Allowed
с заголовком Allow
, вы можете вернуть свойству HTTP.ignore.allow_header.for.405
значение по умолчанию false
.
Прежде чем начать
Прежде чем использовать действия, описанные в этом документе, убедитесь, что вы понимаете следующие темы:
- Прочтите Playbook — 502 Bad Gateway — ответ 405 без заголовка Allow .
- Если вы не знакомы с настройкой свойств Edge в частном облаке, прочтите статью «Как настроить Edge» .
Настройка игнорирования заголовка разрешения для свойства 405 на true на процессорах сообщений
В Apigee Edge для свойства HTTP.ignore.allow_header.for.405
по умолчанию установлено значение false
. Это позволяет Apigee Edge возвращать 502 Bad Gateway
с кодом ошибки protocol.http.Response405WithoutAllowHeader
клиентским приложениям, если внутренний сервер отправляет код состояния HTTP 405 Method Not Allowed
без заголовка Allow
. Если вы хотите запретить Apigee Edge отправлять 502 Bad Gateway
клиентским приложениям, вам необходимо установить для свойства HTTP.ignore.allow_header.for.405
значение true
в процессорах сообщений.
В этом разделе объясняется, как настроить для свойства HTTP.ignore.allow_header.for.405
значение true
на процессорах сообщений, используя токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .
На компьютере с процессором сообщений откройте в редакторе следующий файл. Если он еще не существует, то создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью vi , введите следующее:
vi /opt/apigee/customer/application/message-processor.properties
- Добавьте в файл свойств строку следующего формата:
conf_http_HTTP.ignore.allow_header.for.405=true
- Сохраните изменения.
- Убедитесь, что файл свойств принадлежит пользователю
apigee
, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите процессор сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас более одного процессора сообщений, повторите вышеуказанные шаги для всех процессоров сообщений.
Проверка игнорирования заголовка разрешения для свойства 405, для которого установлено значение true на процессорах сообщений.
В этом разделе объясняется, как проверить, что свойство HTTP.ignore.allow_header.for.405
было успешно обновлено до true
в процессорах сообщений.
Даже если вы используете токен conf_http_HTTP.ignore.allow_header.for.405
для обновления значения свойства в процессоре сообщений, вам необходимо проверить, установлено ли фактическое свойство HTTP.ignore.allow_header.for.405
в значение true
.
- На компьютере с процессором сообщений найдите свойство
HTTP.ignore.allow_header.for.405
в каталоге/opt/apigee/edge-message-processor/conf
и проверьте, установлено ли для него значениеtrue
, как показано ниже:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Если свойство успешно обновлено в процессоре сообщений, то приведенная выше команда должна показать значение свойства
HTTP.ignore.allow_header.for.405
какtrue
в файлеhttp.properties
, как показано ниже:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Если вы по-прежнему видите значение свойства
HTTP.ignore.allow_header.for.405
какfalse
, убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка игнорирования заголовка разрешения для свойства 405 для значения true в процессорах сообщений . Если вы пропустили какой-либо шаг, повторите все шаги еще раз правильно. - Если вам по-прежнему не удается изменить свойство
HTTP.ignore.allow_header.for.405
, обратитесь в службу поддержки Apigee Edge .
Установка значения false для заголовка ignoreallow для свойства 405 на процессорах сообщений
В этом разделе объясняется, как настроить свойство HTTP.ignore.allow_header.for.405
на значение по умолчанию false
в процессоре сообщений, используя токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .
- Убедитесь, что свойство
HTTP.ignore.allow_header.for.405
изменено наtrue
. Вы можете сделать это, выполнив поиск этого свойства в каталоге/opt/apigee/edge-message-processor/conf
и проверив его значение с помощью следующей команды:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Если в процессоре сообщений для свойства установлено
true
, то приведенная выше команда должна показать значение свойстваHTTP.ignore.allow_header.for.405
какtrue
в файлеhttp.properties
, как показано ниже:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Если приведенная выше команда показывает, что для свойства
HTTP.ignore.allow_header.for.405
установлено значениеfalse
(значение по умолчанию), вам больше ничего делать не нужно. То есть пропустите следующие шаги. - Если для свойства
HTTP.ignore.allow_header.for.405
установлено значениеtrue
, выполните следующие действия, чтобы вернуться к значению по умолчаниюfalse
. На компьютере с процессором сообщений откройте в редакторе следующий файл:
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью vi , введите следующее:
vi /opt/apigee/customer/application/message-processor.properties
- Удалите следующую строку из файла свойств:
conf_http_HTTP.ignore.allow_header.for.405=true
- Сохраните изменения.
- Убедитесь, что файл свойств принадлежит пользователю
apigee
, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите процессор сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас более одного процессора сообщений, повторите вышеуказанные шаги для всех процессоров сообщений.
Проверка игнорирования заголовка разрешения для свойства 405, для которого установлено значение false на процессорах сообщений.
В этом разделе объясняется, как проверить, что свойство HTTP.ignore.allow_header.for.405
было успешно обновлено до false
в процессорах сообщений.
Даже если вы используете токен conf_http_HTTP.ignore.allow_header.for.405
для обновления значения в процессоре сообщений, вам необходимо проверить, установлено ли для фактического свойства HTTP.ignore.allow_header.for.405
значение false
.
- На компьютере с процессором сообщений найдите свойство
HTTP.ignore.allow_header.for.405
в каталоге/opt/apigee/edge-message- processor/conf
и проверьте, установлено ли для него значениеfalse
, как показано ниже:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Если свойство успешно обновлено в процессоре сообщений, то приведенная выше команда должна отобразить значение свойства
HTTP.ignore.allow_header.for.405
какfalse
в файлеhttp.properties
, как показано ниже:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Если вы по-прежнему видите значение свойства
HTTP.ignore.allow_header.for.405
какtrue
, убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка значения false для свойства ignoreallow заголовка для 405 на процессорах сообщений . Если вы пропустили какой-либо шаг, повторите все шаги еще раз правильно. - Если вам по-прежнему не удается изменить свойство
HTTP.ignore.allow_header.for.405
, обратитесь в службу поддержки Apigee Edge .