title: nginx and php-fpm 502 error
body: <p>I looked for many solutions for that issue. However, none of them helped me to solve it. The error that shown in /var/log/nginx/error.log as follows:</p>
  
  <pre><code>2017/04/21 16:08:16 [error] 29233#0: *319 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: ..., server: ..., request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "..."
  </code></pre>
  
  <p>Nginx config as follows:</p>
  
  <pre><code>server {
  
      listen 443;
      server_name ... ...;
  
      ssl on;
      ssl_certificate /etc/nginx/ssl/....cer;
      #ssl_client_certificate /etc/nginx/ssl/....cer;
      ssl_certificate_key /etc/nginx/ssl/....key;
      ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
  
      root /var/www/drupal7; ## &lt;-- Your only path reference.
  
      # Enable compression, this will help if you have for instance advagg module
      # by serving Gzip versions of the files.
      gzip_static on;
      sendfile on;
      client_max_body_size 2048M;
  
      location = /favicon.ico {
              log_not_found off;
              access_log off;
      }
  
      location = /robots.txt {
              allow all;
              log_not_found off;
              access_log off;
      }
  
      # Very rarely should these ever be accessed outside of your lan
      location ~* \.(txt|log)$ {
              allow 127.0.0.1;
              deny all;
      }
  
      location ~ \..*/.*\.php$ {
              return 403;
      }
  
      # No no for private
      location ~ ^/sites/.*/private/ {
              return 403;
      }
  
      # Block access to "hidden" files and directories whose names begin with a
      # period. This includes directories used by version control systems such
      # as Subversion or Git to store control files.
      location ~ (^|/)\. {
              return 403;
      }
      location / {
              # This is cool because no php is touched for static content
              try_files $uri @rewrite;
              proxy_read_timeout 300;
      }
  
      location /adore-djatoka {
  #            if($args ~* "/adore-djatoka/resolver?url_ver=.+&amp;rft_id=.+&amp;svc_id=.+") {
  #                rewrite ^ http://...:8080/adore-djatoka/resolver?url_ver=$0&amp;rft_id=$2&amp;svc_id=$1 last;
  #            }
  #            rewrite    ^(.*)https(.*)$    $1http$2;
               proxy_pass http://...:8080/adore-djatoka;
  #            proxy_redirect http://...:8080/adore-djatoka /adore-djatoka;
              #proxy_redirect off;
      }
  
      location @rewrite {
              # You have 2 options here
              # For D7 and above:
              # Clean URLs are handled in drupal_environment_initialize().
              rewrite ^ /index.php;
              # For Drupal 6 and bwlow:
              # Some modules enforce no slash (/) at the end of the URL
              # Else this rewrite block wouldn't be needed (GlobalRedirect)
              #rewrite ^/(.*)$ /index.php?q=$1;
      }
  
      # For Munin
      location /nginx_status {
              stub_status on;
              access_log off;
              allow 127.0.0.1;
              deny all;
      }
  
      location ~ \.php$ {
              fastcgi_split_path_info ^(.+\.php)(/.+)$;
              #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
              include fastcgi_params;
              fastcgi_param SCRIPT_FILENAME $request_filename;
              fastcgi_intercept_errors on;
              fastcgi_pass 127.0.0.1:9000;
              #fastcgi_pass php-fpm;
      }
  
      # Fighting with Styles? This little gem is amazing.
      # This is for D7 and D8
      location ~ ^/sites/.*/files/styles/ {
              try_files $uri @rewrite;
      }
  
      location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
              expires max;
              log_not_found off;
      }
  
  }
  </code></pre>
  
  <p>If it'll be required I can post php-fpm config file, also.</p>
  
  <p>Thanks,</p>
  
  <p>Can</p>