OpenQuizz
Une application de gestion des contenus pédagogiques
ProxyMiddleware Class Reference
Inheritance diagram for ProxyMiddleware:
Collaboration diagram for ProxyMiddleware:

Public Member Functions

def __init__ (self, app, targets, chunk_size=2<< 13, timeout=10)
 
def proxy_to (self, opts, path, prefix)
 
def __call__ (self, environ, start_response)
 

Data Fields

 app
 
 targets
 
 chunk_size
 
 timeout
 

Detailed Description

Proxy requests under a path to an external server, routing other
requests to the app.

This middleware can only proxy HTTP requests, as that is the only
protocol handled by the WSGI server. Other protocols, such as
websocket requests, cannot be proxied at this layer. This should
only be used for development, in production a real proxying server
should be used.

The middleware takes a dict that maps a path prefix to a dict
describing the host to be proxied to::

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

Each host has the following options:

``target``:
    The target URL to dispatch to. This is required.
``remove_prefix``:
    Whether to remove the prefix from the URL before dispatching it
    to the target. The default is ``False``.
``host``:
    ``"<auto>"`` (default):
        The host header is automatically rewritten to the URL of the
        target.
    ``None``:
        The host header is unmodified from the client request.
    Any other value:
        The host header is overwritten with the value.
``headers``:
    A dictionary of headers to be sent with the request to the
    target. The default is ``{}``.
``ssl_context``:
    A :class:`ssl.SSLContext` defining how to verify requests if the
    target is HTTPS. The default is ``None``.

In the example above, everything under ``"/static/"`` is proxied to
the server on port 5001. The host header is rewritten to the target,
and the ``"/static/"`` prefix is removed from the URLs.

:param app: The WSGI application to wrap.
:param targets: Proxy target configurations. See description above.
:param chunk_size: Size of chunks to read from input stream and
    write to target.
:param timeout: Seconds before an operation to a target fails.

.. versionadded:: 0.14

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
  app,
  targets,
  chunk_size = 2 << 13,
  timeout = 10 
)

Member Function Documentation

◆ __call__()

def __call__ (   self,
  environ,
  start_response 
)

◆ proxy_to()

def proxy_to (   self,
  opts,
  path,
  prefix 
)

Field Documentation

◆ app

app

◆ chunk_size

chunk_size

◆ targets

targets

◆ timeout

timeout

The documentation for this class was generated from the following file: