title: Nginx: (111: Connection refused) while connecting to upstream
body: <p>I'm trying to use to Nginx for reverse proxy. I have 1 Node.js app on port 3333 and Golang app on port 3334. When calling to Golang API, I see this message in <code>/var/log/nginx/error.log</code>:</p>
  
  <pre><code>2016/07/15 10:18:36 [error] 4835#0: *131 connect() failed (111: Connection refused) while connecting to upstream, 
  client: 27.69.66.52, 
  server: video1.techmaster.vn, 
  request: "GET /stream/dash/5klRyUnPVyDWouxscIT42uWs5JL4x9nHFol9ecg5g0GLf7aTaI/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwcmljZSI6MCwiZnVsbCI6dHJ1ZSwidmlkZW8iOnsiaWQiOjEwODcsIm5hbWUiOiJtcDNaaW5nU2hvd0RhdGEtMjY0Lm1wNCIsInBhdGgiOiIvbWVkaWEvODIxNyJ9LCJhdHRhY2htZW50IjpbXSwiZXhwIjoxNDY4NTU2NTE2fQ.qc9d_XPhCepHf5iJyf9ORBPOo3pTvF8Th_VMadNSM2o/43f_vid_19.m4s HTTP/1.1", 
  upstream: "http://127.0.0.1:3334/stream/dash/5klRyUnPVyDWouxscIT42uWs5JL4x9nHFol9ecg5g0GLf7aTaI/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwcmljZSI6MCwiZnVsbCI6dHJ1ZSwidmlkZW8iOnsiaWQiOjEwODcsIm5hbWUiOiJtcDNaaW5nU2hvd0RhdGEtMjY0Lm1wNCIsInBhdGgiOiIvbWVkaWEvODIxNyJ9LCJhdHRhY2htZW50IjpbXSwiZXhwIjoxNDY4NTU2NTE2fQ.qc9d_XPhCepHf5iJyf9ORBPOo3pTvF8Th_VMadNSM2o/43f_vid_19.m4s", 
  host: "video1.techmaster.vn", 
  referrer: "https://techmaster.vn/khoa-hoc-online/8217/lap-trinh-ios-swift/96/Location-Notification"
  </code></pre>
  
  <p>I don't know what's the problem from. Maybe I have done some mistake in Nginx config. Here is my Nginx configuration:</p>
  
  <pre><code>server {
  listen  80;
  server_name video1.techmaster.vn www.video1.techmaster.vn;
  return  301 https://$server_name$request_uri;
  }
  server {
  listen 443 spdy ssl;
  server_name video1.techmaster.vn www.video1.techmaster.vn;
  keepalive_timeout 30;
  
  # Allow upload video up to 100M
  client_max_body_size 100M;
  
  # Config SSL
  ssl on;
  ssl_certificate /etc/ssl/cert_chain.crt;
  ssl_certificate_key /etc/ssl/private/sv.video1.techmaster.vn.key;
  ssl_session_timeout 5m;
  ssl_session_cache  shared:SSL:10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "xxxxxxxxxx";
  ssl_prefer_server_ciphers on;
  add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
  ssl_stapling on;
  
  location ~* /.*\.(xml)$      {
      root /var/www/videos.techmaster.vn/public;
      expires 7d;
  }
  
  location /stream/ {
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:3334;
  
      set $cors '';
  
      if ($http_origin ~* (localhost|www\.techmaster\.vn|techmaster\.vn)) {
          set $cors 'true';
      }
  
      if ($cors = 'true') {
          add_header 'Access-Control-Allow-Origin' "$http_origin";
          add_header 'Access-Control-Allow-Credentials' 'true';
          add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
          add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Range';
      }
  }
  
  location / {
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:3333;
  
      set $cors '';
  
      if ($http_origin ~* (localhost|www\.techmaster\.vn|techmaster\.vn)) {
          set $cors 'true';
      }
  
      if ($cors = 'true') {
          add_header 'Access-Control-Allow-Origin' "$http_origin";
          add_header 'Access-Control-Allow-Credentials' 'true';
          add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
          add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Range';
      }
  }
  }
  </code></pre>