Базовый HTTP-прокси
-
class werkzeug.middleware.http_proxy.ProxyMiddleware(app, targets, chunk_size=16384, timeout=10) -
Перенаправляет запросы под определённым путём к внешнему серверу, перенаправляя другие запросы в приложение.
Этот middleware может перенаправлять только HTTP-запросы, так как HTTP является единственным протоколом, обрабатываемым сервером WSGI. Другие протоколы, такие как WebSocket-запросы, не могут быть перенаправлены на этом уровне. Это следует использовать только для разработки, в производстве следует использовать реальный прокси-сервер.
Middleware принимает словарь, сопоставляющий префикс пути к словарю, описывающему целевой хост:
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–2022 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.1.x/middleware/http_proxy/