我试图设置Nginx,独angular兽和Rails应用程序一起工作。 Nginx和Nnicorn正在运行,我用ps命令检查过。
但是,当试图访问我的网页时,我得到了502错误的网关
Nginx错误日志有一行:
2015/03/18 19:53:26 [错误] 14319#0:* 1连接()到unix:/var/sockets/unicorn.mypage.sock失败(11:资源暂时不可用),同时连接到上游
可能是什么问题?
我的/etc/nginx/conf.d/default.conf
upstream app { server unix:/var/sockets/unicorn.mypage.sock fail_timeout=0; } server { listen 80; server_name mypage.com; # Application root, as defined previously root /home/rails/mypage/public; location ^~ /assets/ { gzip_static on; expires max; add_header Cache-Control public; } try_files $uri/index.html $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; } error_page 500 502 503 504 /500.html; client_max_body_size 4G; keepalive_timeout 10; }
/home/rails/mypage/config/unicorn.rb
working_directory "/home/rails/mypage" pid "/home/rails/mypage/pids/unicorn.pid" stderr_path "/home/rails/mypage/log/unicorn.log" stdout_path "/home/rails/mypage/log/unicorn.log" listen "/var/sockets/unicorn.mypage.sock", backlog: 1024 worker_processes 2 timeout 30
它看起来像套接字的问题,但它通常是(111:连接拒绝)当套接字关闭,所以我认为这是应用程序的问题(高负载,执行缓慢等)。
尝试减少积压,并再次看到日志的细节:
listen "/var/sockets/unicorn.mypage.sock", backlog: 64
:backlog =>客户数量
我解决了这个问题。
这是因为我的独角兽服务器是在开发环境中启动的,而不是在生产环境中。 独角兽试图连接到开发数据库,但缺少database.yml中的开发数据库凭证。 在我生产env的独角兽之后,所有的东西都连接好了。