wsgi – WSGI server
The wsgi module provides a simple an easy way to start an event-driven
WSGI server. This can serve as an embedded
web server in an application, or as the basis for a more full-featured web
server package. One such package is Spawning.
To launch a wsgi server, simply create a socket and call eventlet.wsgi.server() with it:
from eventlet import wsgi
import eventlet
def hello_world(env, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello, World!\r\n']
wsgi.server(eventlet.listen(('', 8090)), hello_world)
You can find a slightly more elaborate version of this code in the file
examples/wsgi.py.
-
eventlet.wsgi.server(sock, site, log=None, environ=None, max_size=None, max_http_version='HTTP/1.1', protocol=<class eventlet.wsgi.HttpProtocol at 0x316cbb0>, server_event=None, minimum_chunk_size=None, log_x_forwarded_for=True, custom_pool=None, keepalive=True, log_format='%(client_ip)s - -[, %(date_time)s], "%(request_line)s" %(status_code)s %(body_length)s %(wall_seconds).6f')
Start up a wsgi server handling requests from the supplied server
socket. This function loops forever. The sock object will be closed after server exits,
but the underlying file descriptor will remain open, so if you have a dup() of sock,
it will remain usable.
Parameters: |
- sock – Server socket, must be already bound to a port and listening.
- site – WSGI application function.
- log – File-like object that logs should be written to. If not specified, sys.stderr is used.
- environ – Additional parameters that go into the environ dictionary of every request.
- max_size – Maximum number of client connections opened at any time by this server.
- max_http_version – Set to “HTTP/1.0” to make the server pretend it only supports HTTP 1.0. This can help with applications or clients that don’t behave properly using HTTP 1.1.
- protocol – Protocol class. Deprecated.
- server_event – Used to collect the Server object. Deprecated.
- minimum_chunk_size – Minimum size in bytes for http chunks. This can be used to improve performance of applications which yield many small strings, though using it technically violates the WSGI spec.
- log_x_forwarded_for – If True (the default), logs the contents of the x-forwarded-for header in addition to the actual client ip address in the ‘client_ip’ field of the log line.
- custom_pool – A custom GreenPool instance which is used to spawn client green threads. If this is supplied, max_size is ignored.
- keepalive – If set to False, disables keepalives on the server; all connections will be closed after serving one request.
- log_format – A python format string that is used as the template to generate log lines. The following values can be formatted into it: client_ip, date_time, request_line, status_code, body_length, wall_seconds. Look the default for an example of how to use this.
|
-
eventlet.wsgi.format_date_time(timestamp)
Formats a unix timestamp into an HTTP standard string.