在全新安装nginx和ROR后,“768 worker_connections是不够的”错误

我有一个新的安装Nginx和ruby的轨道上。 但是在testing时,它给了我一个'500内部服务器错误'。

我的应用程序的error.log有以下内容:

2014/05/01 17:27:15 [alert] 1423#0: *6892 768 worker_connections are not enough while connecting to upstream, client: 24.15.27.113, server: example.com, request: "GET / HTTP/1.0", upstream: "http://24.15.27.113:80/", host: "myapp" 2014/05/01 17:27:16 [alert] 1423#0: *7656 768 worker_connections are not enough while connecting to upstream, client: 24.15.27.113, server: example.com, request: "GET /favicon.ico HTTP/1.0", upstream: "http://24.15.27.113:80/favicon.ico", host: "myapp" 2014/05/01 17:45:50 [alert] 1453#0: *766 768 worker_connections are not enough while connecting to upstream, client: 24.15.27.113, server: example.com, request: "GET / HTTP/1.0", upstream: "http://24.15.27.113:80/", host: "myapp" 2014/05/01 17:45:50 [alert] 1453#0: *1530 768 worker_connections are not enough while connecting to upstream, client: 24.15.27.113, server: example.com, request: "GET /favicon.ico HTTP/1.0", upstream: "http://24.15.27.113:80/favicon.ico", host: "myapp" 

nginx.conf具有以下内容:

 user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; } 

myapp.example.comconfiguration文件:

 upstream myapp { #server 24.15.27.113; #server 24.15.27.113:3001; #server 24.15.27.113:3002; server 127.0.0.1:3000; server 127.0.0.1:3001; #server 127.0.0.1:3002; } server { listen 80; server_name .example.com; access_log /var/www/myapp.example.com/log/access.log; error_log /var/www/myapp.example.com/log/error.log; root /var/www/myapp.example.com; index index.html; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; try_files /system/maintenance.html $uri $uri/index.html $uri.html @ruby; } location @ruby { proxy_pass http://myapp; } } 

在上游块内切换回使用ip 127.0.0.1:3000和127.0.0.1:3001后,服务器产生错误:

 2014/05/05 10:34:39 [error] 6158#0: *2 no live upstreams while connecting to upstream, client: 52.74.130.210, server: example.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:3001”, host: "24.15.27.113" 2014/05/05 10:34:39 [error] 6158#0: *2 no live upstreams while connecting to upstream, client: 52.74.130.210, server: example.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "24.15.27.113" 2014/05/05 10:34:39 [error] 6158#0: *2 no live upstreams while connecting to upstream, client: 52.74.130.210, server: example.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://myapp/favicon.ico", host: "24.15.27.113" 

更新05/05/2014:我运行以下命令来检查连接:

 telnet 127.0.0.1 3000 

结果是:

 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused 

我试图重新启动瘦服务器,但收到错误消息。

 thin restart -C /etc/thin/myapp.example.com -o 3000 

错误:

 /usr/local/rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/daemonizing.rb:129:in `send_signal': Can't stop process, no PID found in tmp/pids/thin.3000.pid (Thin::PidFileNotFound) from /usr/local/rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/daemonizing.rb:111:in `kill' from /usr/local/rvm/gems/ruby-2.1.1/gems/thin-1.6.2/lib/thin/controllers/controller.rb:94:in `block in stop' 

proxy_set_headerproxy_redirect指令应位于location @ruby块中。

对于upstream块,你应该使用localhost和你的Ruby服务器的实际端口。 没有端口,上游将连接到这个nginx服务器实例,这是一个循环。

老问题,但我有同样的问题,接受的答案没有为我工作。

如上所述 ,我必须增加worker_connections的数量。

/etc/nginx/nginx.conf

 events { worker_connections 20000; }