我剛剛發現this question在serverfault詳細如何創建一個自定義目錄列表處理程序爲nginx與PHP腳本。我想用一個ruby腳本來做同樣的事情。自定義目錄列表處理程序在紅寶石nginx
location /test/ {
error_page 404 = /webdir/handler.php;
return 404;
}
我的問題是,我會簡單地做同樣的事情,但引用handler.rb
而不是handler.php
,我的意思是,將Nginx的自動知道評估Ruby腳本的輸出到用戶的瀏覽器嗎?所以我只是簡單地創建一個腳本來完成一些puts
的調用,或者這樣做的首選方式是什麼?我對機架或sinatra瞭解不多,但是這種情況哪一個會派上用場?我確實安裝了乘客。
我很可能想在這包括CSS來使列表看起來不錯,我可能會更喜歡在haml或erb中創建結構。我不介意結構模板和css是否需要內聯在同一個handler.rb
中,但是如果可以將它分隔成很漂亮的文件。
最後,我想這適用於mysite.com/downloads/
目錄及其所有子目錄。什麼是首選location
指令?我看到
location ~ /$
是讓所有目錄的工作,但我只希望它適用於downloads/
及其所有子目錄。我認爲這將是一個簡單的正則表達式修改,但我寧願確定。
謝謝,我很感激。
我確實有乘客,即使那樣它也不會評估ruby腳本的權利。所以我應該看看sinatra。你會碰到任何進一步的建議嗎? – 2011-04-12 02:36:03
具體來說,你會提供更多關於nginx設置的信息嗎?所以我會讓它成爲一個sinatra應用程序,然後呢?我的困惑是,我將如何設置它作爲目錄列表的處理程序,在我看來,你認爲它不會與上述內容相同。 – 2011-04-12 02:39:50
一個簡單的谷歌查詢(「sinatra nginx乘客」)給了我http://blog.zerosum.org/2008/7/4/passenger-3-sinatra和其他一些資源。每隔一段時間嘗試一下DAFS。 – 2011-04-12 05:25:58