Gunicorn uses multiple worker processes to handle requests in parallel. With 3 workers, it can process up to 3 requests simultaneously by distributing them among workers.
myproject with the WSGI application located at myproject.wsgi:application?The correct syntax is gunicorn module_path:callable. For Django, the WSGI callable is usually application inside the wsgi.py module of the project.
gunicorn myproject.wsgi:application but get an ImportError: No module named 'myproject'. What is the most likely cause?Python needs the project directory in its path to import the myproject module. Running Gunicorn outside the project root or without proper PYTHONPATH causes ImportError.
Each Gunicorn worker is a separate process with its own memory space. Increasing workers increases memory usage roughly proportionally but allows more concurrent requests.
Django's development server is single-threaded and meant only for testing. Gunicorn supports multiple workers and is built for production stability and performance.