Spec-Zone.ru › Werkzeug 1.0

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

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

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

Этот модуль может перенаправлять только 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 – Приложение WSGI, которое нужно обернуть.
  • targets – Конфигурации целевых серверов для перенаправления. См. описание выше.
  • chunk_size – Размер блоков для чтения из входного потока и записи на целевой сервер.
  • timeout – Время в секундах, прежде чем операция с целевым сервером завершится неудачей.
Изменения

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

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

Spec-Zone.ru

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