title: NGINX 502 bad gateway gunicorn timeout
body: <p>502 bad gateway error pops up on saving data to the db.</p>
  
  <p>Once the user logs into the django app (OLE 7). Data is pulled regarding that user from ldap server and saved in my local db(postgres). It worked perfectly fine on local server after configuring nginx, gunicorn once the user logs into the website instead of displaying retrieved data it shows 502 Bad gateway. I went thru a lot of stackoverflow post regarding this, some said increase the timeout, check gunicorn is running. I have already tried all this but it still wont work.</p>
  
  <p><strong>nginx.conf</strong>    </p>
  
  <pre><code>    user  nginx;
  worker_processes  2;
  
  error_log  /var/log/nginx/error.log warn;
  pid        /var/run/nginx.pid;
  
  
  events {
  worker_connections  1024;
  }
  er  nginx;
  worker_processes  2;
  
  error_log  /var/log/nginx/error.log warn;
  pid        /var/run/nginx.pid;
  
  
  events {
    worker_connections  1024;
  }
  
  
  http {
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;
  
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
  
  access_log  /var/log/nginx/access.log  main;
  
  sendfile        on;
  #tcp_nopush     on;
  
  keepalive_timeout  300;
  
  #gzip  on;
  upstream app_server {
      server 10.111.xxx.xxx:8001 fail_timeout=0;
  }
  
  server{
   listen 80;
   server_name 10.111.xxx.xxx;
   location = /favicon.ico { access_log off; log_not_found off; }
   location /static/ {root /home/lisa/revcon;}
   location / {
      proxy_set_header Host $http_host;
      proxy_set_header Connection "";
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_pass http://unix:/home/lisa/revcon/revcon.sock;
      proxy_connect_timeout 500s;
      proxy_read_timeout 600s;
  }
  </code></pre>
  
  <p><strong>views.py</strong></p>
  
  <pre><code> def save_information(request):
  
  associate_id = id_to_numeric(request.user.username)
  ldap = Ldap()
  
  associate_details = ldap.search(associate_id=associate_id)[0]
  
  details = UserDetails(
      associate_name=associate_details['name'],
      associate_nbr=associate_id,
      associate_email=associate_details['email'],
     associate_department_id=id_to_numeric(associate_details['department']),
      associate_mgr=associate_details['managerCN'],
      associate_exec=associate_details['execCN'],
      associate_org=associate_details['org'],
      associate_image=img,
      date_of_service=rcm_date,
      title=associate_details['title'],
      client=client,
      lob=lob,
      phone_number=associate_details['mobile'],
  )
  details.save()
  messages.success(request, 'Profile created! ')
  return redirect('/?submit=true')
  </code></pre>
  
  <p>nginx error log looks like this:</p>
  
  <blockquote>
    <p>2019/05/15 04:01:55 [error] 7602#7602: *1 upstream prematurely closed connection while reading response header from upstream, client: 10.111.044.xxx, server: 10.111.xxx.xxx, request: "POST /save_information HTTP/1.1", upstream: "<a href="http://unix:/home/lisa/revcon/revcon.sock:/save_information" rel="nofollow noreferrer">http://unix:/home/lisa/revcon/revcon.sock:/save_information</a>", host: "10.111.xxx.xxx", referrer: "<a href="http://10.111.xxx.xxx/pr/" rel="nofollow noreferrer">http://10.111.xxx.xxx/pr/</a>"</p>
  </blockquote>
  
  <p><strong>gunicorn</strong>
  <code> SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."session_key" = 'hzy3dsjxfzqxhds6kd5uyteux0gps9d1' AND "django_session"."expire_date" > '2019-05-15T09:04:53.974657+00:00'::timestamptz); args=('hzy3dsjxfzqxhds6kd5uyteux0gps9d1', datetime.datetime(2019, 5, 15, 9, 4, 53, 974657, tzinfo=))
  (0.001) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 1; args=(1,)
  (0.001) SELECT (1) AS "a" FROM "CollectData_userdetails" WHERE "CollectData_userdetails"."associate_nbr" = '050667' LIMIT 1; args=(u'050667',)
  Exception while resolving variable 'img' in template 'CreateUser.html'.
  Traceback (most recent call last):
    File "/home/lisa/revcon/env/lib/python2.7/site-packages/django/template/base.py", line 903, in _resolve_lookup
      (bit, current))  # missing attribute
  VariableDoesNotExist: Failed lookup for key [img] in u'[{\'False\': False, \'None\': None, \'True\': True}, {u\'csrf_token\': , \'user\': >, \'perms\': , \'DEFAULT_MESSAGE_LEVELS\': {\'DEBUG\': 10, \'INFO\': 20, \'WARNING\': 30, \'SUCCESS\': 25, \'ERROR\': 40}, \'messages\': , u\'request\': }, {}, {\'form\': }, {\'block\': \n, , \n\n\n\n, , , , Associate \'>, , , , , , , , , , \n\n\t\t\t   , , \\n\\t\\t\\t   , , \\n]>}]'
  Exception while resolving variable 'tag' in template 'bootstrap4/field.html'.
  </code></p>
  
  <p>It hits this url 
  url('save_information', views.save_information, name='save_information'),
  and then fails. 502 error.</p>