# Gunicorn server upstream django { server domain.com:9000; } # Redirect all requests on the www subdomain to the root domain server { listen 80; server_name www.domain.com; rewrite ^/(.*) http://domain.com/$1 permanent; } # Serve static files and redirect any other request to Gunicorn server { listen 80; server_name domain.com; root /var/www/domain.com/; access_log /var/log/nginx/domain.com.access.log; error_log /var/log/nginx/domain.com.error.log; # Check if a file exists at /var/www/domain/ for the incoming request. # If it doesn't proxy to Gunicorn/Django. try_files $uri @django; # Setup named location for Django requests and handle proxy details location @django { proxy_pass http://django; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }