1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/megaease-easegress

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
filters.md 59 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 00:57 ea14e4f

Фильтры

  • Фильтры
    • APIAggregator
      • Конфигурация | Имя | Тип |
      • Результаты
    • Proxy
      • Конфигурация
      • Результаты
    • Bridge
      • Конфигурация
      • Результаты
    • CORSAdaptor
      • Конфигурация
      • Результаты
    • Fallback
      • Конфигурация
      • Результаты
    • Mock
      • Конфигурация
      • Результаты
    • RemoteFilter
      • Конфигурация
      • Результаты
    • RequestAdaptor
      • Конфигурация
      • Результаты
    • CircuitBreaker
      • Конфигурация
      • Результаты
    • RateLimiter
      • Конфикация
      • Результаты
    • TimeLimiter
      • Конфигурация
      • Результаты
    • Retryer
      • Конфигурация
      • Результаты
    • ResponseAdaptor
      • Конфигурация
      • Результаты
    • Validator
      • Конфигурация
      • Результаты
    • WasmHost
      • Конфигурация
      • Результаты

Фильтр — это обработчик запросов и ответов. Несколько фильтров можно объединить в цепочку, при этом каждый фильтр после обработки входного запроса или ответа возвращает строку. Пустой результат означает, что текущий фильтр успешно обработал входные данные и они могут быть переданы следующему фильтру в цепочке. Непустой результат указывает на необходимость дополнительных действий со стороны цепочки фильтров или предыдущего фильтра.

APIAggregator

APIAggregator пересылает один запрос нескольким HTTP-конвейерам API в одном пространстве имён и объединяет ответы.

Ниже приведён пример конфигурации, которая пересылает запрос двум конвейерам: http-pipeline-1 и http-pipeline-2. При пересылке запроса http-pipeline-2 метод запроса изменяется на GET, а новый заголовок Original-Method добавляется с исходным методом запроса. Два ответа объединяются в один перед возвратом клиенту.

kind: APIAggregator
name: api-aggregator-example
mergeResponse: true
pipelines:
- name: http-pipeline-1
- name: http-pipeline-2
  method: GET
  header:
    add:
      Original-Method: "[[filter.api-aggregator-example.req.method]]"
  disableBody: false

Конфигурация

| Имя | Тип | | Описание | Требуется | | -------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | maxBodyBytes | int64 | Верхний предел размера тела запроса, по умолчанию равен 0, что означает отсутствие ограничения | Нет | | partialSucceed | bool | Определяет, будет ли результат исходного запроса считаться успешным при сбое запроса к некоторым из конвейеров API, по умолчанию имеет значение false | Нет | | timeout | string | Длительность тайм-аута для запросов к прокси API | Нет | | mergeResponse | bool | Определяет, будут ли несколько объектов ответа объединены в один, по умолчанию равно false, что означает, что окончательный ответ представляет собой массив ответов от прокси API | Нет | | pipelines | []apiaggregator.Pipeline | Конфигурация прокси API | Да |

Результаты

Значение Описание
failed APIAggregator не смог обработать запрос

Прокси

Фильтр «Прокси» является прокси-сервером для внутреннего сервиса.

Ниже представлена одна из самых простых конфигураций прокси, которая перенаправляет запросы на http://127.0.0.1:9095.

kind: Proxy
name: proxy-example-1
mainPool:
  servers:
  - url: http://127.0.0.1:9095

Помимо mainPool, можно также настроить candidatePools, если это так, то прокси сначала проверяет, может ли один из пулов кандидатов обработать запрос. Например, пул кандидатов в следующей конфигурации случайным образом выбирает и обрабатывает 30‰ запросов, а основной пул обрабатывает остальные 970‰ запросов.

kind: Proxy
name: proxy-example-2
mainPool:
  servers:
  - url: http://127.0.0.1:9095
candidatePools:
  - servers:
    - url: http://127.0.0.2:9095
    probability:
      perMill: 30
      policy: random

Серверы пула также могут быть динамически настроены через обнаружение служб, следующая конфигурация получает список серверов через serviceRegistry и serviceName, и выбираются только серверы с тегом v2.

kind: Proxy
name: proxy-example-3
mainPool:
  serverTags: ["v2"]
  serviceName: service-001
  serviceRegistry: eureka-service-registry-example

Когда в пуле несколько серверов, прокси может выполнять балансировку нагрузки между ними:

kind: Proxy
name: proxy-example-4
mainPool:
  serverTags: ["v2"]
  serviceName: service-001
  serviceRegistry: eureka-service-registry-example
  loadBalance:
    policy: roundRobin
    headerHashKey: X-User-Id

Конфигурация

| Имя | Тип | Описание | Требуется | | -------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | Отправлять запрос или получать ответ об ошибке | Нет | | Основной пул | proxy.PoolSpec | Основной пул бэкенд-серверов | Да | | Пулы кандидатов | []proxy.PoolSpec | Одна или несколько конфигураций пулов, похожих на mainPool, но с настроенными параметрами filter. Когда Proxy получает запрос, он сначала проходит через пулы в candidatePools, и если один из пулов фильтрует запрос, серверы этого пула обрабатывают запрос, в противном случае запрос передаётся в mainPool | Нет | | Зеркальный пул | proxy.PoolSpec | Определение зеркального пула, запросы отправляются в этот пул одновременно, когда они отправляются в пулы кандидатов или основной пул | Нет | | Коды ошибок | []int | Необходимо обрабатывать HTTP-коды состояния как ошибки | Нет | | Сжатие | proxy.CompressionSpec | Опции сжатия ответов | Нет |

Результаты

Значение Описание
fallback Выполнены шаги отката
internalError Встречается внутренняя ошибка
clientError Ошибка сети на стороне клиента (Easegress)
serverError Ошибка сети на сервере

Bridge

Фильтр Bridge перенаправляет запросы из одного конвейера в другие конвейеры или HTTP-прокси под HTTP-сервером.

Входящий фильтр устанавливает целевой конвейер/прокси в заголовке запроса X-Easegress-Bridge-Dest. Bridge извлекает значение заголовка и пытается сопоставить его с конфигурацией. Он отправляет запрос, если совпадение найдено, и прерывает процесс, если совпадения нет. Если в конфигурации фильтра нет заголовка с именем X-Easegress-Bridge-Dest, он выбирает первый пункт назначения.

Ниже приведён пример конфигурации с двумя пунктами назначения.

kind: Bridge
name: bridge-example
destinations: ["pipeline1", "pipeline2"]

Конфигурация

Имя Тип Описание Требуется
пункты назначения []string Имена пунктов назначения конвейера/прокси Да

Результаты

Значение Описание
пункт назначения не найден Не найден желаемый пункт назначения
сбой вызова пункта назначения Не удалось вызвать пункт назначения

CORSAdaptor

CORSAdaptor обрабатывает предварительный запрос CORS для бэкенд-сервиса.

Приведённая ниже конфигурация обрабатывает предварительный GET-запрос от *.megaease.com. Конфигурация

Наименование Тип Описание Требуется
allowedOrigins []string Массив источников, из которых может быть выполнен междоменный запрос. Если в списке присутствует специальное значение «», все источники будут разрешены. Источник может содержать подстановочный знак (), чтобы заменить 0 или более символов (например: http://.domain.com). Использование подстановочных знаков подразумевает небольшое снижение производительности. В источнике можно использовать только один подстановочный знак. Значение по умолчанию — «» Нет
allowedMethods []string Массив методов, которые клиент может использовать для междоменных запросов. Значение по умолчанию — простые методы (HEAD, GET и POST) Нет
allowedHeaders []string Массив непростых заголовков, которые клиент может использовать с междоменными запросами. Если в списке есть специальное значение «*», будут разрешены все заголовки. Значение по умолчанию — [], но к списку всегда добавляется «Origin» Нет
allowCredentials bool Указывает, может ли запрос включать учётные данные пользователя, такие как файлы cookie, HTTP-аутентификация или клиентские SSL-сертификаты Нет
exposedHeaders []string Указывает, какие заголовки безопасно раскрывать API спецификации CORS API Нет

Результаты

Значение Описание
preflighted Запрос является предварительным и был успешно обработан

Fallback

Фильтр Fallback имитирует ответ в качестве резервного действия других фильтров. Приведённая ниже конфигурация имитирует ответ с указанным кодом состояния, заголовками и телом.

kind: Fallback
name: fallback-example
mockCode: 200
mockHeaders:
  Content-Type: application/json
mockBody: '{"message": "The feature turned off, please try it later."}'

Конфигурация

Наименование Тип Описание Требуется
mockCode int Этот код перезаписывает код состояния исходного ответа Да
mockHeaders map[string]string Заголовки, добавляемые/устанавливаемые в исходный ответ Нет
mockBody
urls []resilience.URLRule Массив критериев соответствия запросов и политики, применяемой к соответствующим запросам. Обратите внимание, что для каждого элемента массива создаётся отдельный экземпляр CircuitBreaker, даже если два или более элементов могут ссылаться на одну и ту же политику Да

Results

Значение Описание
shortCircuited Запрос был прерван

RateLimiter

RateLimiter защищает бэкенд-сервис для обеспечения высокой доступности и надёжности, ограничивая количество запросов, отправляемых сервису в течение настроенного периода времени.

В приведённой ниже конфигурации запросы GET, POST, PUT, DELETE к пути, который соответствует регулярному выражению ^/pets/\d+$, ограничены 50 запросами за 10 мс, и запрос завершается ошибкой, если он не может быть разрешён в течение 100 мс из-за большого количества одновременных запросов.

kind: RateLimiter
name: rate-limiter-example
policies:
- name: policy-example
  timeoutDuration: 100ms
  limitRefreshPeriod: 10ms
  limitForPeriod: 50
defaultPolicyRef: policy-example
urls:
- methods: [GET, POST, PUT, DELETE]
  url:
    regex: ^/pets/\d+$
  policyRef: policy-example

Configuration

Имя Тип Описание Требуется
policies []ratelimiter.Policy Определения политик Да
defaultPolicyRef string Политика по умолчанию, если ни для одного из urls не настроена policyRef, используется эта политика Нет
urls []resilience.URLRule Массив критериев соответствия запроса и применяемой политики. Обратите внимание, что для каждого элемента массива создаётся отдельный экземпляр RateLimiter, даже если два или более элемента могут ссылаться на одну и ту же политику Да

Результаты

Значение Описание
rateLimited Запрос отклонён из-за ограничения скорости

TimeLimiter

TimeLimiter ограничивает время запросов, запрос отменяется, если ответ не получен в настроенное время.

Приведённая ниже конфигурация помечает запрос POST к пути /users/1 как тайм-аут, если ответ не будет получен в течение 500 мс.

kind: TimeLimiter
name: time-limiter-example
urls:
- methods: [POST]
  url:
    exact: /users/1
  timeoutDuration: 500ms

Configuration

Название Тип Описание Требуется
defaultTimeoutDuration string Настроенное время ожидания по умолчанию, используется, если timeoutDuration не настроен для одного из urls. По умолчанию — 500мс Нет
urls []timelimiter.URLRule Массив критериев соответствия запроса и

Примечание: в ответе были сохранены оригинальное форматирование текста и спецсимволы. Политика, применяемая к соответствующим запросам | Да |

Результаты

Значение Описание
timeout Запрос истёк по времени

Retryer

Retryer повторяет неудачные запросы в соответствии с настроенной политикой.

Ниже приведён пример конфигурации, которая повторяет запросы GET, POST, PUT и DELETE к путям, начинающимся с /books/, когда код состояния ответа равен 500, 503 или 504, максимальное количество попыток равно 3, а базовая продолжительность ожидания между попытками составляет 500 мс.

kind: Retryer
name: retryer-example
policies:
- name: policy-example
  maxAttempts: 3
  waitDuration: 500ms
  failureStatusCodes: [500, 503, 504]
defaultPolicyRef: policy-example
urls:
- methods: [GET, POST, PUT, DELETE]
  url:
    prefix: /books/
  policyRef: policy-example

Конфигурация

Имя Тип Описание Требуется
policies []retryer.Policy Определения политик Да
defaultPolicyRef string Политика по умолчанию, если ни в одном из urls не настроена политика policyRef, используется эта политика Нет
urls []resilience.URLRule Массив критериев соответствия запросов и политики, применяемых к соответствующим запросам Да

Результаты

Фильтр всегда возвращает результат своего последующего фильтра, и результат последней попытки возвращается, когда есть две или более попытки.

ResponseAdaptor

ResponseAdaptor изменяет исходный ответ в соответствии с конфигурацией перед его возвратом.

Ниже приведена конфигурация, которая добавляет заголовок с именем X-Response-Adaptor со значением response-adaptor-example в ответы.

kind: ResponseAdaptor
name: response-adaptor-example
header:
  add:
    X-Response-Adaptor: response-adaptor-example

Конфигурация

Имя Тип Описание Требуется
header httpheader.AdaptSpec Правила для изменения заголовка запроса Нет
body string Если указано, тело исходного запроса заменяется значением этого параметра. Примечание: тело может быть шаблоном, что означает, что переменные времени выполнения (заключённые в [[ & ]]) заменяются их фактическими значениями Нет

Результаты

Фильтр всегда возвращает пустой результат.

Validator

Validator фильтрует запросы, пересылает действительные и отклоняет недействительные. На данный момент поддерживаются четыре метода проверки (headers, jwt, signature и oauth2), которые можно использовать вместе или по отдельности. Когда используются два или более методов вместе, запрос должен пройти все из них, чтобы быть пересланным.

Ниже представлена конфигурация для метода проверки headers. Запросы, имеющие заголовок с именем Is-Valid со значением abc или goodplan или соответствующие регулярному выражению ^ok-.+$, считаются действительными. Конфигурация

Название Тип Описание Требуется
headers map[string]httpheader.ValueValidator Правила проверки заголовков, ключ — это имя заголовка, а значение — правило проверки соответствующего значения заголовка. Запрос должен пройти все правила проверки, чтобы пройти проверку «headers». Нет
jwt validator.JWTValidatorSpec Правило проверки JWT, проверяет строку токена JWT из заголовка «Authorization» или файлов cookie. Нет
signature signer.Spec Правило проверки подписи, реализует совместимый с Amazon Signature V4 валидатор проверки подписи, с настраиваемыми литеральными строками. Нет
oauth2 validator.OAuth2ValidatorSpec Метод OAuth/2 поддерживает режим «Token Introspection» и режим «Self-Encoded Access Tokens», одновременно можно настроить только один режим. Нет

Результаты

Значение Описание
invalid Запрос не проходит проверку.

WasmHost

Фильтр WasmHost реализует среду хоста для пользовательского кода WebAssembly. Ниже приведён пример конфигурации, которая загружает код wasm из файла, более подробную информацию можно найти в этом документе.

name: wasm-host-example
kind: WasmHost
maxConcurrency: 2
code: /home/megaease/wasm/hello.wasm
timeout: 200ms

Примечание: этот фильтр отключён в стандартной сборке Easegress, его можно включить с помощью команд:

$ make GOTAGS=wasmhost

или

$ go build -tags=wasmhost

Конфигурация

Имя Тип Описание Требуется
maxConcurrency int32 Максимальное количество запросов, которые фильтр может обрабатывать одновременно. По умолчанию — 10, минимальное значение — 1. Да
code string Код wasm, может быть кодом в кодировке base64 или путём/URL файла, содержащего код.
Наименование Тип Описание Требуется
forCodes bool Когда true, fallback обрабатывает коды состояния HTTP, перечисленные в failureCodes, по умолчанию — false Нет
mockCode int См. фильтр Fallback (filters.md#Fallback) Да
mockHeaders map[string]string См. фильтр Fallback (filters.md#Fallback) Нет
mockBody string См. фильтр Fallback (filters.md#Fallback) Нет

proxy.PoolSpec

Наименование Тип Описание Требуется
spanName string Имя диапазона для трассировки, если не указано, используется URL целевого сервера Нет
serverTags []string Теги селектора серверов, только серверы с тегами в этом массиве включены в этот пул Нет
servers []proxy.Server Массив статических серверов. Если опущено, должны быть указаны serviceName и serviceRegistry, и наоборот Нет
serviceName string Этот параметр и serviceRegistry предназначены для динамического обнаружения сервера Нет
serviceRegistry string Этот параметр и serviceName предназначены для динамического обнаружения сервера Нет
loadBalance proxy.LoadBalance Варианты балансировки нагрузки Да
memoryCache memorycache.Spec Параметры кэширования ответов Нет
filter httpfilter.Spec Опции фильтрации для пулов кандидатов Нет

proxy.Server

Наименование Тип Описание Требуется
url string Адрес сервера Да
tags []string Метки этого сервера, см. serverTags в proxy.PoolSpec Нет
weight int При политике балансировки нагрузки weightedRandom это значение используется для расчёта вероятности этого сервера Нет

proxy.LoadBalance

| Наименование | Тип | Описание | Требуется | | ------------- | ------ | ----------------------------------------------------------------------------------------------------------- | -------- | | Имя | Тип | Описание | Требуется | | --- | --- | --- | --- | | Load balance policy, допустимые значения: roundRobin, random, weightedRandom, ipHash и headerHash | Да | Политика балансировки нагрузки. Допустимые значения: roundRobin, random, weightedRandom, ipHash и headerHash | Нет | | headerHashKey | строка | Когда политика — headerHash, эта опция является именем заголовка, значение которого используется для расчёта хеша | Нет |

memorycache.Spec

Имя Тип Описание Требуется
codes []int Коды состояния HTTP, которые должны быть кэшированы Да
expiration строка Срок действия записей в кэше Да
maxEntryBytes uint32 Максимальный размер тела ответа, ответ с большим телом никогда не кэшируется Да
methods []string Методы HTTP-запросов, которые должны быть кэшированы Да

httpfilter.Spec

Если настроены критерии заголовков, запрос фильтруется, если он соответствует как заголовкам, так и URL-адресам. Если критерии заголовков НЕ настроены, используются параметры вероятности.

Имя Тип Описание Требуется
headers map[string]urlrule.StringMatch Фильтр запросов по заголовкам. Ключ этой карты — имя заголовка, а значение этой карты — критерии соответствия значению заголовка Нет
urls []urlrule.URLRule Критерии соответствия URL-адреса запроса Нет
probability httpfilter.Probability Параметры для фильтрации запросов по вероятности Нет

urlrule.StringMatch

Отношение между exact, prefix и regexИЛИ.

Имя Тип Описание Требуется
exact строка Строка должна быть идентична значению этого поля Нет
prefix строка Строка должна начинаться со значения этого поля Нет
regex строка Строка должна соответствовать регулярному выражению, указанному значением этого поля Нет

urlrule.URLRule

Отношение между методами и URL — И.

Имя Тип Описание Требуется
методы []string Критерии метода HTTP, по умолчанию пустой список означает все методы Нет
url urlrule.StringMatch Критерии для сопоставления URL Да

resilience.URLRule

Отношение между методами и URL — И.

Имя Тип Описание Требуется
методы []string Критерии метода HTTP, по умолчанию пустой список означает все методы Нет
url urlrule.StringMatch Критерии для сопоставления URL Соответствие URL
Да
---
policyRef строка Имя политики отказоустойчивости для сопоставленных запросов Нет

httpfilter.Probability

Имя Тип Описание Требуется
perMill uint32 Целевой фильтр в соотношении, в процентах Да
policy строка Политика рандомизации, допустимые значения: ipHash, headerHash и random Да
headerHashKey строка Когда policyheaderHash, эта опция — это имя заголовка, значение которого используется для расчёта хэша Нет

proxy.Compression

Имя Тип Описание Требуется
minLength int Минимальный размер тела ответа, который будет сжат; ответ с меньшим телом никогда не сжимается Да

mock.Rule

Имя Тип Описание Требуется
code int Код состояния HTTP смоделированного ответа Да
path строка Критерии соответствия пути, если путь запроса является значением этой опции, то ответ на запрос моделируется в соответствии с этим правилом Нет
pathPrefix строка Критерии соответствия префикса пути, если путь запроса начинается со значения этой опции, то ответ на запрос моделируется в соответствии с этим правилом Нет
delay строка Длительность задержки, для моделирования времени обработки запроса Нет
headers map[string]string Заголовки смоделированного ответа Нет
body строка Тело смоделированного ответа, по умолчанию — пустая строка Нет

circuitbreaker.Policy

Имя Тип Описание Требуется
name строка Имя политики. Должно быть уникальным в одной конфигурации CircuitBreaker Нет
Скользящее окно (slidingWindowType) строка Тип скользящего окна, которое используется для записи результатов запросов, когда автоматический выключатель (CircuitBreaker) находится в состоянии CLOSED. Скользящее окно может быть либо COUNT_BASED, либо TIME_BASED. Если скользящее окно COUNT_BASED, записываются и агрегируются последние slidingWindowSize запросов. Если скользящее окно TIME_BASED, то записываются и агрегируются запросы за последние slidingWindowSize секунд. По умолчанию используется COUNT_BASED Нет
Порог частоты отказов (failureRateThreshold) int8 Порог частоты отказов в процентах. Когда частота отказов равна или превышает порог, автоматический выключатель переходит в состояние OPEN и начинает замыкать запросы накоротко. По умолчанию 50 Нет
Порог медленных вызовов (slowCallRateThreshold) int8 Порог медленной скорости в процентах. Автоматический выключатель считает запрос медленным, если его длительность больше slowCallDurationThreshold. Когда процент медленных запросов равен или превышает пороговое значение, автоматический выключатель переходит в состояние OPEN и начинает замыкать запросы накоротко. По умолчанию 100 Нет
Учёт сетевых ошибок (countingNetworkError) bool Учитывать ли сетевые ошибки как отказы. По умолчанию false Нет
Размер скользящего окна (slidingWindowSize) uint32 Размер скользящего окна, который используется для записи результатов запросов, когда автоматический выключатель находится в состоянии CLOSED. По умолчанию 100 Нет
Разрешённое количество вызовов в полуоткрытом состоянии (permittedNumberOfCallsInHalfOpenState) uint32 Количество разрешённых запросов, когда автоматический выключатель находится в HALF_OPEN состоянии. По умолчанию 10 Нет
Минимальное количество вызовов (minimumNumberOfCalls) uint32 Минимальное количество запросов, которые требуются (за период скользящего окна), прежде чем автоматический выключатель сможет рассчитать частоту отказов или частоту медленных запросов. Например, если minimumNumberOfCalls равно 10, то должно быть записано не менее 10 запросов, прежде чем можно будет рассчитать частоту отказов. Если было записано только 9 запросов, автоматический выключатель не перейдёт в состояние OPEN, даже если все 9 запросов завершились неудачно. По умолчанию 10 Нет
Максимальная продолжительность ожидания в полуоткрытом состоянии (maxWaitDurationInHalfOpenState) string Максимальная продолжительность ожидания, которая контролирует максимальное время, в течение которого автоматический выключатель может оставаться в состоянии HALF_OPEN, прежде чем он переключится в состояние OPEN. Значение 0 означает, что автоматический выключатель будет бесконечно ждать в состоянии HALF_OPEN, пока не будут выполнены все разрешённые запросы. По умолчанию 0 Нет
Продолжительность ожидания в открытом состоянии (waitDurationInOpenState) string Время, которое автоматический выключатель должен подождать, прежде чем перейти из состояния OPEN в состояние HALF_OPEN. По умолчанию 60 с failureStatusCodes — []int — коды состояния HTTP, которые необходимо считать отказами.

ratelimiter.Policy

Имя Тип Описание Требуется
name string имя политики. Должно быть уникальным в одной конфигурации RateLimiter Да
timeoutDuration string максимальная длительность ожидания запроса разрешения на прохождение через RateLimiter. Запрос завершается ошибкой, если он не может получить разрешение в течение этого времени. По умолчанию 100 мс Нет
limitRefreshPeriod string период обновления лимита. После каждого периода RateLimiter устанавливает счётчик разрешений обратно на значение limitForPeriod. По умолчанию 10 мс Нет
limitForPeriod int количество разрешений, доступных за один limitRefreshPeriod. По умолчанию 50 Нет

timelimiter.URLRule

| Имя | Тип | Описание | Требуется | | --- | --- --- | --- --- | --- | | methods | []string | критерии метода HTTP. По умолчанию пустой список означает все методы | Нет | | url | urlrule.StringMatch | критерии соответствия URL | Да | | timeoutDuration | string | длительность тайм-аута для соответствующих запросов. По умолчанию 500 мс | Нет |

retryer.Policy

| Имя | Тип | Описание | Требуется | | --- | --- --- | --- --- | ------ | | name | string | имя политики. Должен быть уникальным в конфигурации Retryer | Да | | countingNetworkError | bool | учёт сетевой ошибки как сбоя или нет. По умолчанию false | Нет | | failureStatusCodes | []int | коды состояния HTTP, которые должны считаться сбоями | Нет | | maxAttempts | int | максимальное количество попыток | Количество попыток (включая начальную). По умолчанию — 3 | Нет | | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | Длительность ожидания | строка | Базовая длительность ожидания между попытками. По умолчанию — 500 мс | Нет | | Политика отката | строка | Политика отката для длительности ожидания, может быть EXPONENTIAL или RANDOM, по умолчанию — RANDOM. Если настроено как EXPONENTIAL, базовая длительность ожидания после каждой неудачной попытки становится в 1,5 раза больше | Нет | | Коэффициент рандомизации | float64 | Коэффициент рандомизации для фактической длительности ожидания, число в интервале [0, 1], по умолчанию равен 0. Фактическая длительность ожидания — случайное число в интервале [(базовая длительность ожидания) * (1 - коэффициент рандомизации), (базовая длительность ожидания) * (1 + коэффициент рандомизации)] | Нет |

httpheader.ValueValidator

Имя Тип Описание Требуется
values []string Массив строк. Если одно из значений заголовка любого заголовка запроса найдено в массиве, запрос считается прошедшим проверку текущего правила Нет
regexp string Регулярное выражение. Если значение одного из заголовков запроса соответствует этому регулярному выражению, запрос считается прошедшим проверку текущего правила Нет

validator.JWTValidatorSpec

Имя Тип Описание Требуется
cookieName string Имя файла cookie. Если этот параметр установлен и файл cookie существует, его значение используется в качестве строки токена, в противном случае используется заголовок Authorization Нет
algorithm string Алгоритм проверки: поддерживаются HS256, HS384 и HS512 Да
secret string Секрет для проверки в шестнадцатеричном кодировании Да

signer.Spec

Имя Тип Описание Требуется
literal signer.Literal Строки литералов для настройки, используется значение по умолчанию, если опущено Нет
excludeBody bool Исключить тело запроса из расчёта подписи, по умолчанию — false Нет
ttl string Время жизни подписи, по умолчанию 0 означает, что подпись никогда не истекает Нет
accessKeys map[string]string Карта идентификатора ключа доступа к секрету ключа доступа Да

signer.Literal

| Имя | Тип | Описание | Требуется | |

Примечание: в ответе сохранены оригинальное форматирование текста и спецсимволы. | Область суффикса | Алгоритм имени | Алгоритм значения | Подписанные заголовки | подпись | дата | истекает срок действия | учётные данные | contentSha256 | Префикс ключа подписи | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | Строка | Строка | строка | строка | строка | строка | строка | строка | строка | строка | | Последняя часть для построения области учётных данных, по умолчанию — «megaease_request», в Amazon Signature V4 — «aws4_request» | Имя алгоритма запроса в запросе, по умолчанию — X-Me-Algorithm, в Amazon Signature V4 — X-Amz-Algorithm | Заголовок/значение запроса алгоритма для запроса, по умолчанию — ME-HMAC-SHA256, в Amazon Signature V4 — AWS4-HMAC-SHA256 | Заголовок/запрос заголовков подписанных заголовков, по умолчанию — X-Me-SignedHeaders, в Amazon Signature V4 — X-Amz-SignedHeaders | Имя запроса подписи, по умолчанию — X-Me-Signature, в Amazon Signature V4 — X-Amz-Signature | Заголовок/имя запроса времени, по умолчанию — X-Me-Date, в Amazon Signature V4 — X-Amz-Date | Имя запроса срока действия, по умолчанию — X-Me-Expires, в Amazon Signature V4 — X-Amz-Expires | Имя запроса учётных данных, по умолчанию — X-Me-Credential, в Amazon Signature V4 — X-Amz-Credential | Заголовок имени хэша тела/полезной нагрузки, по умолчанию — X-Me-Content-Sha256, в Amazon Signature V4 — X-Amz-Content-Sha256 | Префикс добавляется к секрету ключа доступа при получении ключа подписи, по умолчанию — ME, в Amazon Signature V4 — AWS4 |

validator.OAuth2ValidatorSpec

Имя Тип Описание Требуется
tokenIntrospect validator.OAuth2TokenIntrospect Конфигурация для режима Token Introspection Нет
jwt validator.OAuth2JWT Конфигурация для режима Self-Encoded Access Tokens Нет

validator.OAuth2TokenIntrospect

Имя Тип Описание Требуется
endPoint строка Конечная точка сервера интроспекции токенов Да
clientId строка Идентификатор клиента Easegress на сервере интроспекции токенов Нет
clientSecret строка Секрет клиента Easegress Нет
basicAuth строка Если не указан clientId и указана эта опция, её значение используется для базовой авторизации с сервером интроспекции токенов Нет
insecureTls bool Указывает, является ли соединение между Easegress и сервером интроспекции токенов небезопасным TLS

validator.OAuth2JWT

Имя Тип Описание Требуется
algorithm string Алгоритм для валидации, поддерживаются HS256, HS384 и HS512 Да
secret string Секрет для валидации в шестнадцатеричном кодировании Да

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/megaease-easegress.git
git@api.gitlife.ru:oschina-mirror/megaease-easegress.git
oschina-mirror
megaease-easegress
megaease-easegress
main