2009-12-31 3 views
6

Ich habe Probleme, eine Rails-App in der Produktionsumgebung über Phusion Passenger auf Nginx/Ubuntu auszuführen. Gemäß der docs wird die Umgebung durch die Option rails_env in der Datei nginx.conf gesteuert ... aber sie läuft im Entwicklungsmodus auf unserer Box, unabhängig davon, ob wir 'rails_env production' angeben. oder lassen Sie es aus (der Standard wird als Produktion bezeichnet).Rails kann nicht über Passenger/Nginx in die Produktionsumgebung gezwungen werden.

Andere Anmerkungen:

  • Die Linux-Umgebungsvariable RAILS_ENV wird auch die Produktion eingestellt.

  • Wir können im Produktionsmodus laufen mit ‚script/server -e Produktion‘, so dass es scheint nicht ein Fall von Ruby Code, um die Umwelt zu überschreiben.

Irgendwelche Ideen?

Voll nginx.conf:

worker_processes 1; 

pid /var/run/nginx.pid; 

events { 
    worker_connections 1024; 
} 

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

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

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    sendfile  on; 
    keepalive_timeout 65; 

    gzip on; 
    gzip_http_version 1.0; 
    gzip_vary on; 
    gzip_comp_level 6; 
    gzip_proxied any; 
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 
    gzip_buffers 16 8k; 

    server { 
     listen 80; 
     server_name bar.foo.com; 
     root /home/foo/dev/bar/public; 
     passenger_enabled on; 
     rails_env production; 
    } 

} 
+0

Neustart nginx, vermutlich? Startet die App in Ordnung und funktioniert, wenn Sie die richtige db für die Entwicklung haben? Das ist verrückt. – wesgarrison

+0

Ja/Ja/vereinbart. – BFB

Antwort

0

Oder versuchen Sie einfach zu entfernen 'config.ru' zusammen. Nginx ist schlau über Rails Apps, und config.ru ist für sie nicht notwendig.

Verwandte Themen