Connect () for unix: /var/run/unicorn.sock failed (111: connection refused) when connecting to the upstream

I track ruby ​​on rails when deploying the application once. The database is done well, even I check the rails on the console, everything works fine

017/02/26 15:34:17 [error] 18564#0: *31 connect() to unix:/var/run/unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 121.52.156.57, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:/var/run/unicorn.sock:/", host: "188.166.157.124" 2017/02/26 15:35:42 [error] 32360#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 119.155.34.115, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:/var/run/unicorn.sock/", host: "188.166.157.124" 2017/02/26 15:42:38 [error] 6296#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 119.152.140.90, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:/var/run/unicorn.sock/", host: "188.166.157.124" 

uncorn.conf

 listen "unix:/var/run/unicorn.sock" worker_processes 4 user "rails" working_directory "/home/rails/company_startup" pid "/var/run/unicorn.pid" stderr_path "/var/log/unicorn/unicorn.log" stdout_path "/var/log/unicorn/unicorn.log" 

nginx

 upstream app_server { server unix:/var/run/unicorn.sock fail_timeout=0; 

}

 server { listen 80; root /home/rails/nehbor-webserver/public; server_name _; index index.htm index.html; client_max_body_size 1M; location / { try_files $uri/index.html $uri.html $uri @app; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ { try_files $uri @app; } location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } 
+5
source share
2 answers

According to the unicorn documentation , I think you should remove the unix part from the listen method in the configuration and change to listen "/var/run/unicorn.sock" .

 listen 3000 # listen to port 3000 on all TCP interfaces listen "127.0.0.1:3000" # listen to port 3000 on the loopback interface listen "/path/to/.unicorn.sock" # listen on the given Unix domain socket listen "[::1]:3000" # listen to port 3000 on the IPv6 loopback interface 
+2
source

In short, nginx is trying to redirect your application, but it cannot. I believe that besides the basic configuration and structure, the most common problem is related to:

  • ports
  • sockets
  • and for me (using aws ec2), I used a domain that was linked using the cname entry on my dns registar. The changed ip changed the domain server name and my record was not updated. I just changed it from the cname entry to my new elastic domain name.
0
source

Source: https://habr.com/ru/post/1264773/


All Articles