title: Nginx error: (13: Permission denied) while connecting to upstream
body: <p>I am getting this error in my <code>nginx-error.log</code> file:</p>
  
  <pre><code>2014/02/17 03:42:20 [crit] 5455#0: *1 connect() to unix:/tmp/uwsgi.sock failed (13: Permission denied) while connecting to upstream, client: xx.xx.x.xxx, server: localhost, request: "GET /users HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "EC2.amazonaws.com"
  </code></pre>
  
  <p>The browser also shows a 502 Bad Gateway Error. The output of a <code>curl</code> is the same, Bad Gateway html</p>
  
  <p>I've tried to fix it by changing permissions for <code>/tmp/uwsgi.sock</code> to 777. That didn't work. I also added myself to the <code>www-data</code> group (a couple questions that looked similar suggested that). Also, no dice. </p>
  
  <p>Here is my <code>nginx.conf</code> file:</p>
  
  <p><strong>nginx.conf</strong></p>
  
  <pre><code>worker_processes 1;
  worker_rlimit_nofile 8192;
  
  events {
    worker_connections  3000; 
  }
  
  error_log  /var/log/nginx/error.log warn;
  pid        /var/run/nginx.pid;
  
  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  65; 
  
      #gzip  on; 
  
      include /etc/nginx/conf.d/*.conf;
      include /etc/nginx/sites-enabled/*;
  }
  </code></pre>
  
  <p>I am running a Flask application with Nginsx and Uwsgi, just to be thorough in my explanation. If anyone has any ideas, I would really appreciate them.</p>
  
  <hr>
  
  <p><strong>EDIT</strong></p>
  
  <p>I have been asked to provide my uwsgi config file. So, I never personally wrote my nginx or my uwsgi file. I followed the guide <a href="http://mattupstate.com/python/devops/2012/08/07/flask-wsgi-application-deployment-with-ubuntu-ansible-nginx-supervisor-and-uwsgi.html" rel="noreferrer">here</a> which sets everything up using ansible-playbook. The <code>nginx.conf</code> file was generated automatically, but there was nothing in <code>/etc/uwsgi</code> except a <code>README</code> file in both <code>apps-enabled</code> and <code>apps-available</code> folders. Do I need to create my own config file for uwsgi? I was under the impression that ansible took care of all of those things. </p>
  
  <p>I believe that <code>ansible-playbook</code> figured out my uwsgi configuration since when I run this command</p>
  
  <pre><code>uwsgi -s /tmp/uwsgi.sock -w my_app:app
  </code></pre>
  
  <p>it starts up and outputs this:</p>
  
  <pre><code>*** Starting uWSGI 2.0.1 (64bit) on [Mon Feb 17 20:03:08 2014] ***
  compiled with version: 4.7.3 on 10 February 2014 18:26:16
  os: Linux-3.11.0-15-generic #25-Ubuntu SMP Thu Jan 30 17:22:01 UTC 2014
  nodename: ip-10-9-xxx-xxx
  machine: x86_64
  clock source: unix
  detected number of CPU cores: 1
  current working directory: /home/username/Project
  detected binary path: /usr/local/bin/uwsgi
  !!! no internal routing support, rebuild with pcre support !!!
  *** WARNING: you are running uWSGI without its master process manager ***
  your processes number limit is 4548
  your memory page size is 4096 bytes
  detected max file descriptor number: 1024
  lock engine: pthread robust mutexes
  thunder lock: disabled (you can enable it with --thunder-lock)
  uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
  Python version: 2.7.5+ (default, Sep 19 2013, 13:52:09)  [GCC 4.8.1]
  *** Python threads support is disabled. You can enable it with --enable-threads ***
  Python main interpreter initialized at 0x1f60260
  your server socket listen backlog is limited to 100 connections
  your mercy for graceful operations on workers is 60 seconds
  mapped 72760 bytes (71 KB) for 1 cores
  *** Operational MODE: single process ***
  WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x1f60260 pid: 26790 (default app)
  *** uWSGI is running in multiple interpreter mode ***
  spawned uWSGI worker 1 (and the only) (pid: 26790, cores: 1)
  </code></pre>