Настройка игнорирования заголовка разрешения для свойства 405 в обработчиках сообщений

Вы просматриваете документацию 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 .

Прежде чем начать

Прежде чем использовать действия, описанные в этом документе, убедитесь, что вы понимаете следующие темы:

Настройка игнорирования заголовка разрешения для свойства 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» .

  1. На компьютере с процессором сообщений откройте в редакторе следующий файл. Если он еще не существует, то создайте его.

    /opt/apigee/customer/application/message-processor.properties
    

    Например, чтобы открыть файл с помощью vi , введите следующее:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Добавьте в файл свойств строку следующего формата:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Сохраните изменения.
  4. Убедитесь, что файл свойств принадлежит пользователю apigee , как показано ниже:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Перезапустите процессор сообщений, как показано ниже:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Если у вас более одного процессора сообщений, повторите вышеуказанные шаги для всех процессоров сообщений.

Проверка игнорирования заголовка разрешения для свойства 405, для которого установлено значение true на процессорах сообщений.

В этом разделе объясняется, как проверить, что свойство HTTP.ignore.allow_header.for.405 было успешно обновлено до true в процессорах сообщений.

Даже если вы используете токен conf_http_HTTP.ignore.allow_header.for.405 для обновления значения свойства в процессоре сообщений, вам необходимо проверить, установлено ли фактическое свойство HTTP.ignore.allow_header.for.405 в значение true .

  1. На компьютере с процессором сообщений найдите свойство 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
    
  2. Если свойство успешно обновлено в процессоре сообщений, то приведенная выше команда должна показать значение свойства HTTP.ignore.allow_header.for.405 как true в файле http.properties , как показано ниже:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Если вы по-прежнему видите значение свойства HTTP.ignore.allow_header.for.405 как false , убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка игнорирования заголовка разрешения для свойства 405 для значения true в процессорах сообщений . Если вы пропустили какой-либо шаг, повторите все шаги еще раз правильно.
  4. Если вам по-прежнему не удается изменить свойство HTTP.ignore.allow_header.for.405 , обратитесь в службу поддержки Apigee Edge .

Установка значения false для заголовка ignoreallow для свойства 405 на процессорах сообщений

В этом разделе объясняется, как настроить свойство HTTP.ignore.allow_header.for.405 на значение по умолчанию false в процессоре сообщений, используя токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .

  1. Убедитесь, что свойство 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
    
  2. Если в процессоре сообщений для свойства установлено 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
    
  3. Если приведенная выше команда показывает, что для свойства HTTP.ignore.allow_header.for.405 установлено значение false (значение по умолчанию), вам больше ничего делать не нужно. То есть пропустите следующие шаги.
  4. Если для свойства HTTP.ignore.allow_header.for.405 установлено значение true , выполните следующие действия, чтобы вернуться к значению по умолчанию false .
  5. На компьютере с процессором сообщений откройте в редакторе следующий файл:

    /opt/apigee/customer/application/message-processor.properties
    

    Например, чтобы открыть файл с помощью vi , введите следующее:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Удалите следующую строку из файла свойств:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Сохраните изменения.
  8. Убедитесь, что файл свойств принадлежит пользователю apigee , как показано ниже:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Перезапустите процессор сообщений, как показано ниже:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Если у вас более одного процессора сообщений, повторите вышеуказанные шаги для всех процессоров сообщений.

Проверка игнорирования заголовка разрешения для свойства 405, для которого установлено значение false на процессорах сообщений.

В этом разделе объясняется, как проверить, что свойство HTTP.ignore.allow_header.for.405 было успешно обновлено до false в процессорах сообщений.

Даже если вы используете токен conf_http_HTTP.ignore.allow_header.for.405 для обновления значения в процессоре сообщений, вам необходимо проверить, установлено ли для фактического свойства HTTP.ignore.allow_header.for.405 значение false .

  1. На компьютере с процессором сообщений найдите свойство 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
    
  2. Если свойство успешно обновлено в процессоре сообщений, то приведенная выше команда должна отобразить значение свойства HTTP.ignore.allow_header.for.405 как false в файле http.properties , как показано ниже:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Если вы по-прежнему видите значение свойства HTTP.ignore.allow_header.for.405 как true , убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка значения false для свойства ignoreallow заголовка для 405 на процессорах сообщений . Если вы пропустили какой-либо шаг, повторите все шаги еще раз правильно.
  4. Если вам по-прежнему не удается изменить свойство HTTP.ignore.allow_header.for.405 , обратитесь в службу поддержки Apigee Edge .