我正在使用Passenger 4.0.17的开源版本,并试图从文档中辨别出一些我不清楚的行为。我希望有人可以提供帮助。
这样做有什么区别:
server {
listen 443;
server_name www.example.com;
root /path/to/my/app/public;
location / {
passenger_enabled on;
rails_env production;
# etc. ....
}
}
这样做了吗?
server {
listen 443;
server_name www.example.com;
root /path/to/my/app/public;
try_files $uri @passenger
location @passenger {
passenger_enabled on;
rails_env production;
# etc. ....
}
}
我一直习惯做第一个,但我开始怀疑第二个是否更好。
我希望在第一个示例中,Passenger worker进程处理每个请求,而在第二个示例中,Passenger worker进程只处理那些Nginx无法提供静态响应的请求。
但是...
在我的脑海中,我想知道Nginx的Passenger模块是否还没有内置智能级别 - 这使得try_files指令变得不必要。 (如果上面使用的try_files指令使得Passenger不能处理Nginx自己可以处理的请求,我希望Passenger文档中已经涵盖了这一点,对吧?但是根本没有提到它。)
询问的原因很明显......
如果我可以从Nginx工作进程提供静态内容而不必同时使用Passenger工作进程,那些Passenger进程(占用更多内存并且效率较低)将可以自由处理他们真正需要处理的请求只需少量工人,我就能获得更多的收益。
再次......我根本无法看到文档中的内容。来自知情人士的任何信息都将不胜感激!
答案 0 :(得分:1)