我们的服务器显示了大量的500个内部错误页面随机请求。 我们知道应用程序正在工作,因为我们的代码是unit testing。 服务器设置是Nginx,Unicorn在Ubuntu 10.4 LTS上运行单个Rails应用程序。
据我们所知,请求在传递给Unicorn之前失败了,因为Unicorn的日志文件或我们的Airbrake(我们正在使用的另一个日志logging服务)中没有日志条目,但Nginx的日志文件确实显示了500个状态条目。 服务器正常负载,所以它没有用完内存或任何东西。
Nginx的error.log文件实际上并没有给我们任何有用的东西。 没有build议文件问题或资源问题的条目。
我应该如何继续寻找这个问题?
谢谢
这是我们的网站的nginxconfiguration:
# This is the socket that unicorn listens to upstream unicorn { server unix:/tmp/unicorn.sock; } server { listen 80; client_max_body_size 10m; server_name oursite.com; root /var/www/current/public; access_log /var/log/nginx/access.log; error_page 500 502 503 504 /var/www/shared/500.html; if ($http_user_agent ~* (majestic12|easou|Sogou|baidu|ahrefs) ) { return 403; } location / { # auth_basic "Restricted"; # auth_basic_user_file /var/www/shared/.htpasswd; 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; proxy_max_temp_file_size 0; if (-f $request_filename) { break; } if (-f $document_root/system/maintenance.html) { rewrite ^(.*)$ /system/maintenance.html last; break; } if (-f $request_filename/index.html) { rewrite (.*) $1/index.html break; } if (-f $request_filename.html) { rewrite (.*) $1.html break; } if (!-f $request_filename) { proxy_pass http://unicorn; break; } } }
如果您在rails错误日志中没有任何内容,则可能是HTTP错误503(不可用的后端)或504(后端超时)。 确切的错误和原因将在nginx错误日志中。 这两个错误是因为独angular兽不能提供所有的HTTP请求。
你可以做一些事情: