Speaking in very general terms, there are two ways Django can be run. Either it runs inside a process of the web server itself – as with mod_wsgi on Apache – or it runs in a completely separate process and receives requests via reverse proxy from the server, as with uwsgi/gunicorn.