Nginx + Passenger = 响应缓慢

Nginx + Passenger = 响应缓慢

我正在运行带有 Passenger 3.0.11 和 Rails 应用程序的 nginx 1.0.4,我注意到对于我发出的每个请求,第一个请求大约需要 5 秒钟才能响应,如果我重新加载它,在第一个请求完成后,它很快,但是如果我等待一分钟,例如,新的第一个请求再次需要时间。

这是正常的吗?或者可能是我的配置有问题?

操作系统:MacOSX 10.7.3

答案1

等待第一位乘客请求的时间较长(在使用率低的站点)是正常的。

您可以预先启动乘客实例以避免首次请求等待。

例如:

在 nginx 配置的 http {} 部分

passenger_pre_start http://url_of_your_application/;

在服务器 {} 部分

passenger_min_instances = 1;

答案2

您可以考虑的另一个选项是每 5 分钟设置一个 cron 作业,该作业将获取站点 URL,从而使 Passenger 保持启动并准备就绪。我在生产中遇到了同样的问题,如果应用程序一段时间内没有使用,第一次访问时 Passenger 启动时会很慢(3-5 秒)。之后它就非常快了。

这是保持其活动的另一种方法(添加到您的 crontab:

*/5 * * * * wget http://yoursite.com > /dev/null 2>&1 

相关内容