2013-09-16 127 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進程(佔用更多內存並且效率比較低)將會可以自由處理他們真正需要處理的請求,而且只需少量工作人員就可以獲得更大的回報。

再次......我看不出文檔在哪裏涵蓋了這一點。來自知道某人的任何信息將不勝感激!

回答

相關問題