2013-09-16 98 views
2

我使用的是Passenger 4.0.17的开源版本,试图从文档中辨别出我的行为并不清楚。我希望有人能帮忙。Nginx + Phusion Passenger try_files

是否有这样做的差异:

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. .... 
    } 

} 

我一直在做第一个习惯,但我开始怀疑第二个更好。

我期望在第一个例子中,乘客工作进程处理每个请求,而在第二个例子中,乘客工作进程只处理那些Nginx无法提供静态响应的请求。

但是......

在我的脑海里,我不知道如果Nginx的乘客模块已经没有智力的那个水平内置IN-使得try_files指令不必要的。 (如果上面使用的try_files指令让Passenger无法处理Nginx自己可以处理的请求,我希望已经在Passenger文档中介绍过了,但是没有提及它。)

询问的原因很明显...

如果我可以从Nginx工作进程提供静态内容而不需要两个Passenger工作进程,那些Passenger进程(占用更多内存并且效率比较低)将会可以自由处理他们真正需要处理的请求,而且只需少量工作人员就可以获得更大的回报。

再次......我看不出文档在哪里涵盖了这一点。来自知道某人的任何信息将不胜感激!

回答

相关问题