Spec-Zone.ru › Werkzeug 2.0

Базовый HTTP-прокси

class werkzeug.middleware.http_proxy.ProxyMiddleware(app, targets, chunk_size=16384, timeout=10)

Перенаправляет запросы по пути к внешнему серверу, направляя другие запросы к приложению.

Этот миддлварь может перенаправлять только HTTP-запросы, так как HTTP является единственным протоколом, обрабатываемым сервером WSGI. Другие протоколы, такие как запросы WebSocket, не могут быть перенаправлены на этом уровне. Это следует использовать только для разработки, в производстве следует использовать реальный прокси-сервер.

Миддлварь принимает словарь, сопоставляющий префикс пути с словарем, описывающим хост, к которому необходимо перенаправить:

app = ProxyMiddleware(app, {
    "/static/": {
        "target": "http://127.0.0.1:5001/",
    }
})

Каждый хост имеет следующие параметры:

target:

Целевой URL для перенаправления. Это обязательно.

remove_prefix:

Нужно ли удалить префикс из URL перед его перенаправлением на целевой сервер. По умолчанию False.

host:
"<auto>" (default):

Заголовок хоста автоматически переписывается на URL целевого сервера.

None:

Заголовок хоста не изменяется из клиентского запроса.

Любое другое значение:

Заголовок хоста перезаписывается указанным значением.

headers:

Словарь заголовков, которые необходимо отправлять вместе с запросом на целевой сервер. По умолчанию {}.

ssl_context:

ssl.SSLContext определяющий, как проверять запросы, если целевой сервер использует HTTPS. По умолчанию None.

В приведенном примере все по пути "/static/" перенаправляется на сервер на порту 5001. Заголовок хоста переписывается на целевой сервер, а префикс "/static/" удаляется из URL.

Параметры
  • app (WSGIApplication) – Обёртка для WSGI-приложения.
  • targets (Mapping[str, Dict[str, Any]]) – Конфигурации целевых прокси-серверов. См. описание выше.
  • chunk_size (int) – Размер блоков для чтения из входного потока и записи на целевой сервер.
  • timeout (int) – Время в секундах до истечения времени ожидания операции с целевым сервером.
Возвращаемое значение

None

Журнал изменений

Введено в версии 0.14.

© 2007–2021 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.0.x/middleware/http_proxy/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API