Digital Ocean + Django + Nginx - Error: "NOT FOUND - The requested resource was not found on this server."

June 20, 2019 485 views
DigitalOcean Django Nginx Ubuntu 18.04

I have set up my website www.gojainyatra.com on digital ocean. I’m using nginx. everything is working fine, but some urls (like https://gojainyatra.com/dharamshala/firstshala/vlogs/2019/6/20/5/9/46/test/) are not being served and give error - “Not Found The requested resource was not found on this server.”

My configuration file is

upstream app_server {
    server unix:/home/gojainyatra/run/gunicorn.sock fail_timeout=0;
}

server {
    listen 80;
    server_name gojainyatra.com www.gojainyatra.com;

    keepalive_timeout 5;
    client_max_body_size 4G;

    access_log /home/gojainyatra/logs/nginx-access.log;
    error_log /home/gojainyatra/logs/nginx-error.log;

    location /static/ {
        alias /home/gojainyatra/staticfiles/;
    }

    # checks for static file, if not found proxy to app
    location / {
        try_files $uri @proxy_to_app;
    }

    location @proxy_to_app {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://app_server;
    }
}

please help, I’m new to development and don’t have much idea what is going wrong.

1 Answer

Django doesn’t serve files itself, you have to setup a location block in nginx for that like you did in /static.

location /dharamshala/ {
        alias /home/gojainyatra/whatever-your-folder-dharamshala-is/;
    }
Have another answer? Share your knowledge.