我使用的是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進程(佔用更多內存並且效率比較低)將會可以自由處理他們真正需要處理的請求,而且只需少量工作人員就可以獲得更大的回報。
再次......我看不出文檔在哪裏涵蓋了這一點。來自知道某人的任何信息將不勝感激!