2010-03-11 40 views
6

我的一個web服務器出現嚴重問題......在使用mongrel/haproxy-cluster進行內部alpha測試後,我們希望使用nginx和乘客來爲我們的第一臺生產服務器(客戶將訪問此服務器)。爲什麼帶有Passenger/nginx的Rails只能用於開發模式?沒有日誌

但是,我只能通過乘客/ nginx的開發模式運行rails應用程序。

該應用程序本身與生產模式中的雜種或webrick完美。

我對這種情況最大的問題是,我沒有在nginx或rails-logs中找到任何信息(只有當我使用mongrel或webrick時)。

權限是正確的。乘客狀態顯示應用程序正在運行,但我總是得到靜態的500.html錯誤頁面...

如果你們可以給我一個提示,並幫助我解決問題,這將是非常好的。

我把配置在帖子的下方......這確切配置可與rails_env development;但我想使用的生產模式;-)

非常感謝您的幫助!


版本:Ubuntu的 8.04.2 64位/ 的nginx-0.7.64

貓/opt/nginx/conf/nginx.conf(通過乘客2.2.11編譯和安裝)

user www-data; 
worker_processes 4; 

error_log logs/error.log; 

#pid  logs/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
     passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11; 
     passenger_ruby /usr/bin/ruby1.8; 


    passenger_log_level 3; 
    include  mime.types; 
    default_type application/octet-stream; 

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
    #     '$status $body_bytes_sent "$http_referer" ' 
    #     '"$http_user_agent" "$http_x_forwarded_for"'; 

    access_log logs/access.log; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    #gzip on; 

    server { 
     listen  80; 
     server_name <<servername>>; 


root /srv/app01/public; 
passenger_enabled on; 
} 
+0

哦,我忘了,rails是2.3版本。5 – 2010-03-11 12:10:14

+0

我不知道乘客,但我知道nginx ......不應該在'server'下有'location'部分嗎? – 2010-03-11 17:58:14

+0

你錯過了關閉服務器上的'}'或http – 2010-03-11 19:21:28

回答

3

帶Nginx的乘客默認運行在生產模式下。使用passenger-install-nginx-module命令安裝使用Passenger模塊編譯的nginx。 您確定您已經創建並遷移了生產模式的數據庫嗎?

rake db:create RAILS_ENV=production 
rake db:migrate RAILS_ENV=production 

你的nginx.conf看起來很適合我。確保nginx用戶(例如www-data)可以訪問您的Rails應用程序。

好運

+0

嗨,謝謝你的回答...數據庫設置正確,文件權限應該是正確的,因爲nginx + passenger在開發模式下工作... 你有什麼提示,我可以找到調試/日誌消息? – 2010-03-13 18:59:03

0

我背後nginx的客車運行Rails 2.3.5,和我有非常相同的問題。我的解決方案總是切換到Passenger/nginx中的開發模式或WEBrick中的生產模式進行調試,但聽起來好像您已經嘗試了兩種方法。

您是否嘗試在您的nginx.conf中取消註釋行error_log logs/error.log;

+0

嗨,謝謝你的回答...真是太遺憾了,開發模式對我們來說太慢了,我們想要緩存和所有的東西...... 我取消了註釋行,你可以在上面的帖子中看到。 也許我們必須通過禁用某些功能並重試來檢查究竟是什麼問題(緩存或其他)... – 2010-03-16 10:08:51

+0

我不會建議永久在開發中運行,只是暫時找到錯誤的原因。無論如何,據我所知,這是一個乘客錯誤。令人沮喪。 – Tom 2010-03-17 06:21:07

2

只是從你的應用程序目錄中刪除config.ru

乘客從機架交換機到軌道,一切都將工作

+0

爲我工作。非常感謝! – cbrulak 2010-11-16 22:18:00

相關問題