2010-03-11 6 views
6

Ich habe ein ernstes Problem mit einem unserer Webserver ... nachdem wir einen internen Alpha-Test mit einem Mongrel/Haproxy-Cluster hatten, der gut funktionierte, wollten wir nginx mit passagier für unseren ersten Produktionsserver (Kunden) verwenden Zugriff auf diesen Server).Warum funktioniert Rails mit Passenger/nginx nur im Entwicklungsmodus? Keine Protokolle verfügbar

Allerdings kann ich die Rails App nur über den Entwicklungsmodus mit passagier/nginx laufen lassen.

Die App selbst läuft perfekt im Produktionsmodus mit Mongrel oder Webrick.

Mein größtes Problem in diesem Fall ist, dass ich keine Informationen in den Nginx oder Rails-Logs finde (nur wenn ich Mongrel oder Webrick benutze).

Berechtigungen sind korrekt. Passagier Status zeigt, dass die App läuft, aber ich bekomme immer die statische 500.html-Fehlerseite ...

Es wäre so schön, wenn Sie mir einen Tipp geben könnten und mir helfen, das Problem zu lösen.

ich die Config am unteren Rand der Post setzen ... Diese exakte Konfiguration arbeitet mit rails_env development; aber ich möchte den Produktionsmodus verwenden ;-)

Vielen Dank für Ihre Hilfe!


Version: Ubuntu 8.04.2 64bit/ nginx-0.7.64 (kompiliert und installiert über Passagier-2.2.11)

Katze /opt/nginx/conf/nginx.conf

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

oh, ich habe vergessen, Schienen ist Version 2.3.5 –

+0

Ich kenne Passagier nicht, aber ich weiß nginx ... sollten Sie 'Standort'-Abschnitt unter' Server' nicht haben? –

+0

Und du verpasst ein Schließen '}' auf Server oder http –

Antwort

3

Passagier mit Nginx wird standardmäßig im Produktionsmodus ausgeführt. Verwenden Sie den Befehl passenger-install-nginx-module, um nginx zu installieren, das mit dem Passenger-Modul kompiliert wurde. Sind Sie sicher, dass Sie die Datenbank für den Produktionsmodus erstellt und migriert haben?

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

Ihre nginx.conf sieht gut zu mir. Stellen Sie sicher, dass der nginx-Benutzer (z. B. www-data) Zugriff auf Ihre Rails-App hat.

Viel Glück

+0

Hallo, danke für deine Antwort ... Die Datenbank ist richtig eingerichtet und die Dateiberechtigungen sollten stimmen, weil nginx + passagier im Entwicklungsmodus arbeitet ... Hast du Hinweise, wo ich Debug/Log Nachrichten finde? –

0

Ich betreibe Rails 2.3.5 auf Passagier hinter nginx, und ich habe das gleiche Problem hatte. Meine Lösung ist immer in den Entwicklungsmodus in Passenger/nginx oder Produktionsmodus in WEBrick um zu debuggen, aber es klingt wie Sie beide versucht haben.

Haben Sie versucht, die Zeile error_log logs/error.log; in Ihrer nginx.conf auskommentieren?

+0

Hallo, danke für deine Antwort ... Was für eine Schande, Entwicklungsmodus ist zu langsam für uns, wir wollen Caching und all das Zeug ... Ich habe die Zeile unkommentiert, wie Sie in dem Beitrag oben sehen können. Vielleicht müssen wir überprüfen, was genau das Problem (Caching oder was auch immer), indem Sie einige Funktionen deaktivieren und erneut versuchen ... –

+0

Ich würde nicht empfehlen, in der Entwicklung dauerhaft, nur vorübergehend, um die Ursache des Fehlers zu finden. Wie auch immer, soweit ich das beurteilen kann, ist dies ein Passenger Bug. Frustrierend. – Tom

2

entfernen Sie einfach config.ru aus dem App-Verzeichnis

Passagier von Rack-Switch wird auf Schienen und alles funktioniert

+0

das funktionierte für mich. vielen Dank! – cbrulak