2015-05-12 81 views
0

我新的Rails和嘗試部署我的Rails應用程序到服務器(其運行完全使用rails server我的電腦上)。nginx的和乘客運行我的Rails應用程序

我的服務器有nginxpassenger都安裝並正常工作。然而,當我改變nginx配置文件在/opt/nginx/conf/nginx.conf如下

.... 
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini; 
passenger_ruby /usr/bin/ruby1.9.1; 
.... 
server { 
    listen  80; 
    server_name localhost; 

    #charset koi8-r;                                              

    #access_log logs/host.access.log main;                                        

    location/{ 
     root /home/path_to_my_app/public; 
     index index.html index.htm; 
    } 

    passenger_enabled on; 
} 

這是行不通的。我無法打電話給我的鐵軌代碼。它一直說錯誤。

我重新啓動nginx使用service nginx restart其中返回OK,但仍然沒有運氣。

任何人都可以告訴如何調試。我應該在哪裏檢查我的乘客運行的所有應用程序?我失蹤的部分是什麼?

編輯:我下面這個documentation密切

+0

有時,當你重新啓動'nginx'一切似乎是確定,當它真的不是。嘗試找到錯誤日誌(有時在'/ var/log/nginx/error.log'),並查看重新啓動時是否打印出任何錯誤。 –

+0

@MartinKonecny:錯誤不顯示任何錯誤。它只是說在線PassengerAgent。該日誌中沒有錯誤。還有其他地方我應該檢查嗎? –

+0

是不是有誰能告訴我發生了什麼事? –

回答

0

「位置/」是指所有的HTTP請求將由該位置的處理程序進行處理,但沒有一個,所以你會得到「404未找到」。我想你的意思是說你的主頁是index.html,所以把「location /」改​​成「location = /」會解決你的問題。


更新

server { listen 80; server_name localhost; root /path/to/public; passenger_enabled on; } 沒有必要爲簡單的應用程序添加位置。

+0

這並沒有解決問題。它仍然說404錯誤。我如何檢查我的Rails應用程序是否正在運行? –

+0

乘客會處理您的所有請求,所以只需設置公共根路徑。 – nobody0day

0

如果您的服務器日誌中說,客運代理在線,如果你運行sudo passenger-status,看看您的應用程序上市,那麼它會出現代理設置正確。

你是否試圖訪問本地使用本地?如果您嘗試從服務器外訪問它,則需要將server_name設置爲您的域或IP地址(並且在任何更改後重新啓動nginx)。如果你在服務器上運行curl http://localhost,你是否看到你網站的html,或者只是另一個404?

1

好像沒有/home/path_to_my_app/public目錄。

在乘客版本5.0.7目錄訪問已更改。現在,如果根目錄不存在,則返回到nginx來搜索index.html,如果現在有這樣的文件,則會返回404錯誤。

[Nginx的] Nginx的模塊現在尋找的index.html,如果路徑中 /結束,因此,它直觀的運行,而無需使用try_files。

https://blog.phusion.nl/2015/04/29/passenger-5-0-7/

相關問題