【发布时间】:2023-04-07 20:45:01
【问题描述】:
我在 ec2-instance t2.small 上使用 nginx 和乘客运行 rails 应用程序,具有 2GB RAM 和 1 个 CPU 核心。
应用包含开发模式下的大礼包和相关宝石。 Spree 后端过去可以正常工作,但从过去 3 天开始,响应时间太长,如果闲置一段时间,启动时间太长。我在 nginx 中尝试了各种乘客方法的组合,但没有帮助,所以我省略了这些,下面是当前场景中的 nginx 文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
passenger_root /usr/local/rvm/gems/ruby-2.2.1/gems/passenger-5.0.20;
passenger_ruby /usr/local/rvm/gems/ruby-2.2.1/wrappers/ruby;
passenger_app_env development;
#added two lines for setting user group
passenger_default_user root;
passenger_default_group root;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
passenger_spawn_method smart;
passenger_pool_idle_time 1000;
server {
listen 80;
server_name localhost;
root /var/www/html/apps/localfiles/public;
passenger_enabled on;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name abcd.com www.abcd.com;
root /var/www/html/apps/abcd/ComingSoon;
passenger_enabled on;
}
server {
listen 80;
server_name xyz.com www.xyz.com;
root /var/www/html/apps/xyz/ComingSoon;
passenger_enabled on;
}
}
任何关于 nginx/passenger 配置的正确组合的说明将不胜感激。
更新:当我使用 Spree API 时,我需要点击 API 3-4 次才能获得正确的响应,它经常在 API 调用之间向我抛出这个 Web application could not be started。请帮忙解决这个问题
【问题讨论】:
-
我会使用像 newrelic 这样的应用程序监控工具检查整个应用程序。如果没有一些指标很难判断,如果机器整体有点慢,那么 nginx 工作人员、乘客工作人员、db 瓶颈很少。在任何情况下,我都与 newrelic 无关,但我真的建议至少在调整性能时使用它(提供免费版本)。
-
嗨@JulianKaffke,谢谢你的信息,我一定会看看newrelic。但是现在,我现在得到的是这个非常奇怪的错误
Web application could not be started,你能帮我解决这个问题吗? -
你有堆栈跟踪/完整的错误页面吗?
标签: ruby-on-rails nginx amazon-ec2 passenger