Базовый 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/