Simon Willison’s Weblog


18 items tagged “wsgi”


The First Few Weeks— Another take on managed Python Django/WSGI hosting, from Andrew Godwin and Ben Firshman.

# 13th January 2011, 4:25 am / andrew-godwin, ben-firshman, django, hosting, python, wsgi, recovered


The Web Server Benchmarking We Need. Ian Bicking asks for a WSGI benchmark which emphasises error handling over raw performance—can the server keep serving requests if some of them are CPU bound, I/O bound, wedged or cause a segfault?

# 17th March 2010, 10:05 am / benchmarking, ian-bicking, python, wsgi

Why toppcloud will not be agnostic. Ian Bicking’s toppcloud aims to offer deployment with the ease of use of AppEngine against a standard, open source Ubuntu + Python 2.6 + mod_wsgi + Varnish stack. Here he explains why he’s not going to vary the required components: keeping everything completely standardised means everyone gets the same bugs (and the same fixes).

# 12th February 2010, 9:21 am / appengine, deployment, django, ian-bicking, modwsgi, python, toppcloud, ubuntu, varnish, wsgi


Finding and fixing memory leaks in Python. Using Dozer, a clever piece of WSGI middleware which displays sparklines of Python object counts and allows you to introspect them, using the gc module under the hood.

# 22nd April 2009, 12:16 pm / amirsalihefendic, debugging, memory, memoryleaks, middleware, python, wsgi

How to use Django with Apache and mod_wsgi. My favourite deployment option is now included in the official Django docs, thanks to Alex Gaynor. I tend to run a stripped down Apache with mod_wsgi behind an nginx proxy, and have nginx serve static files directly. This avoids the need for a completely separate media server (although a separate media domain is still a good idea for better client-side performance).

# 1st April 2009, 12:24 am / alex-gaynor, deployment, django, modwsgi, nginx, proxy, python, wsgi

Future roadmap for mod_wsgi. mod_wsgi 3.0 isn’t too far off, and will include Python 3.0 support, WSGI application preloading and internal web server redirection (similar to nginx X-Accel-Redirect). Version 4.0 plans a major architectural change that will allow multiple versions of Python to be run from the same Apache.

# 19th March 2009, 5:27 pm / apache, grahamdumpleton, modwsgi, nginx, python, wsgi

Load spikes and excessive memory usage in mod_python. “The final answer? Stop using mod_python, use mod_wsgi and run it with daemon mode instead. You will save yourself a lot of headaches by doing so.”

# 16th March 2009, 5:26 pm / apache, grahamdumpleton, modpython, modwsgi, python, wsgi

Concurrence. Exciting: a Python framework for “creating massively concurrent network applications” (the tutorial benchmarks a Hello World web server at over 8,000 requests a second). It’s implemented on top of libevent using pyrex, can run on either Stackless Python or Greenlets from the py library and ships with a WSGI server, an HTTP client and a DBAPI 2.0 compliant MySQL driver.

# 15th March 2009, 1:28 pm / concurrence, greenlets, http, libevent, mysql, pyrex, python, stacklesspython, wsgi

Ruby on Rails 2.3 Release Notes. I’m impressed with how thoroughly Rails has embraced Rack (Ruby’s standardised web framework API, inspired by Python’s WSGI).

# 15th March 2009, 1:22 pm / python, rack, rails, ruby, wsgi

FAPWS3-0.2 (WSGI server based on libev). Another strong contender for Python’s answer to Mongrel—3500 requests/s for static files, 43 for a simple dynamic (Django powered) pages and 4.8 for a heavy SQL query—all benchmarked with 300 concurrent requests.

# 25th February 2009, 10:21 pm / django, fapws, mongrel, python, webservers, wsgi


Google App Engine. Write applications in Python using a WSGI compatible application framework, then host them on Google’s highly scalable infrastructure. The most exciting part is probably the Datastore API, which provides external developers with access to Bigtable for the first time.

# 8th April 2008, 7:25 am / bigtable, google, googleappengine, python, scaling, virtualisation, wsgi

Setup mod_wsgi for Django and Shared Hosting. Tutorial by David Cramer; attached are useful comments from mod_wsgi author Graham Dumpleton.

# 26th March 2008, 2:42 pm / david-cramer, django, grahamdumpleton, hosting, modwsgi, python, wsgi

Version 2.0 of mod_wsgi is now available. Includes features that should make Python (and Django) on shared hosting much easier: a non-root user can touch their WSGI script file to restart just their application’s daemon processes when they make changes and Python virtual environments are supported to allow different versions of packages without interference.

# 21st March 2008, 1:23 pm / django, hosting, modwsgi, python, sharedhosting, wsgi

django-evserver. Marek Majkowski got Comet working with Django using a custom WSGI server that wraps libevent using ctypes.

# 19th January 2008, 12:15 pm / comet, ctypes, django, djangoevserver, libevent, marekmajkowski, python, wsgi


Web hosting landscape and mod_wsgi. Graham Dumpleton explains how mod_wsgi’s daemon mode should provide secure Python deployment for commodity hosting providers.

# 2nd July 2007, 3:47 pm / grahamdumpleton, hosting, modwsgi, python, wsgi

Wait For It (via) Neat WSGI middleware from Ian Bicking that launches a thread for every incoming request and watches for slow responses; if something is taking too long it returns a “please wait” page to the user and polls for completion.

# 9th June 2007, 4:53 pm / ian-bicking, middleware, python, wsgi

modwsgi. Apache module (written in C) for hosting Python WSGI applications, no mod_python required. Includes Django integration instructions. Has anyone tried this out?

# 14th April 2007, 9:48 am / apache, django, python, wsgi

Rack. “Rack provides an minimal interface between webservers supporting Ruby and Ruby frameworks”. Ruby’s equivalent of WSGI has just hit v0.1.

# 4th March 2007, 8:49 pm / rack, ruby, wsgi