HTTP Proxy Server¶
The code for this example is located in the examples.proxyserver.manage
module.
An asynchronous multi-process HTTP proxy server. It works for both
http
and https
(tunneled) requests.
Managing Headers¶
It is possible to add middleware to manipulate the original request headers. If the header middleware is an empty list, the proxy passes requests and responses unmodified. This is an implementation for a forward-proxy which can be used to retrieve any type of source from the Internet.
To run the server:
python manage.py
An header middleware is a callable which receives the wsgi environ and the list of request headers. By default the example uses:
To run with different headers middleware create a new script and do:
from proxyserver.manage import server
if __name__ == '__main__':
server(headers_middleware=[...]).start()
Implementation¶
-
class
examples.proxyserver.manage.
ProxyServerWsgiHandler
(headers_middleware=None)[source]¶ WSGI middleware for an asynchronous proxy server.
To perform processing on headers you can pass a list of
headers_middleware
. An headers middleware is a callable which accepts two parameters, the wsgi environ dictionary and the headers container.-
http_client
¶ The
HttpClient
used by this proxy middleware for accessing upstream resources
-