setting up nginx with django
<p>I have created a django project called "yo" in my /home/ubuntu/test directory.</p>

<p>These are my nginx files:</p>

<p>nginx/sites-available/yo</p>

<pre><code>    server {
        listen 80;
        server_name 52.89.220.11;

        location = /favicon.ico { access_log off; log_not_found off; }
        location /static/ {
            root /home/ubuntu/test/yo/static;
        }

        location / {
            include uwsgi_params;
            uwsgi_pass unix:/home/ubuntu/test/yo/yo.sock;
        }
    }
</code></pre>

<p>nginx/sites-enabled/yo_nginx.conf:</p>

<pre><code># mysite_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
    # server unix:///home/Ubuntu/test/yo/yo.sock; # for a file socket
    server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve for
    server_name 52.89.220.11; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
 #   location /media  {
  #      alias /path/to/your/mysite/media;  # your Django project's media files - amend as required
   # }

    #location /static {
    #   alias /path/to/your/mysite/static; # your Django project's static files - amend as required
  }

# Finally, send all non-media requests to the Django server.
location / {
    uwsgi_pass  django;
    include     /home/ubuntu/test/yo/uwsgi_params; # the uwsgi_params file you installed
}
}
</code></pre>

<p>/home/ubuntu/test/yo/uwsgi_params:</p>

<pre><code>uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;
</code></pre>

<p>There are my files along with their url. When i go to the domain_name on port 80, i get 502 bad gateway instead of django success page. Please help.</p>

<ul>
<li>you have unmatched parens in your <code>nginx/sites-enabled/yo_nginx.conf</code></li>
<li><code>nginx/sites-available/yo</code> is not read by nginx - only files ending in <code>.conf</code> and located in <code>nginx/sites-enabled/</code> are read in default nginx configuration.</li>
<li>since your command line <code>uwsgi --socket mysite.sock --module mysite.wsgi --chmod-socket=664</code> tells uwsgi to listen on unix socket, your <code>upstream django</code> block should be modified accordingly.</li>
</ul>

<p>That should get rid of the 502 error.</p>

<pre><code>upstream django {
    server unix:///home/ubuntu/test/yo/mysite.sock; # for a file socket, check if the path is correct
    # server 127.0.0.1:8001; # for a web port socket
}

# configuration of the server
server {
    # the port your site will be served on
    listen      80;
    # the domain name it will serve for
    server_name 52.89.220.11; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    #   location /media  {
    #      alias /path/to/your/mysite/media;  # your Django project's media files - amend as required
    # }

    # location /static {
    #     alias /path/to/your/mysite/static; # your Django project's static files - amend as required
    # }

# Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /home/ubuntu/test/yo/uwsgi_params; # the uwsgi_params file you installed
    }
}
</code></pre>

python django nginx