Errori in production environment

Salve a tutti.

Ho portato un’applicazione sotto il production envionment. Questo è dato
da un server apache2+mongrel sotto cui gira la mia applicazione rails.

Tutto funziona bene, ma stranamente gli errori generati da rails
continuano ad avere tutti i dati del debug.

Il file di configurazione sotto mongrel_cluster porta environment:
production, ed infatti l’applicazione va sul DB di produzione.

Da cosa puo’ dipendere?

Grazie a tutti

Non è che in config/environments/production.rb hai una linea questa?

config.log_level = :debug

Dovrebbe stare a :info, oppure essere commentata.

Paolo

Sam P. wrote:

Salve a tutti.

Ho portato un’applicazione sotto il production envionment. Questo è dato
da un server apache2+mongrel sotto cui gira la mia applicazione rails.

Tutto funziona bene, ma stranamente gli errori generati da rails
continuano ad avere tutti i dati del debug.

Il file di configurazione sotto mongrel_cluster porta environment:
production, ed infatti l’applicazione va sul DB di produzione.

Da cosa puo’ dipendere?

Grazie a tutti

Suppongo che il problema sia relativo all’istanza di mongrel che gira
sotto apache2.

Stai usando RewriteProxy?

Se fai partire mongrel (solo mongrel_rails -e production) non in cluster
fa
lo stesso problma?

giovanni lion wrote:

Stai usando RewriteProxy?
No

Se fai partire mongrel (solo mongrel_rails -e production) non in cluster
fa
lo stesso problma?

No, se lancio il comando

mongrel_rails start -e production

va tutto ok.

Il problema sembra proprio essere il mongrel cluster, ma non riesco
proprio a capire dove sbaglio.

Grazie di tutto!

Paolo M. wrote:

Non è che in config/environments/production.rb hai una linea questa?

config.log_level = :debug

No, il mio file production.rb ha solo tre linee non commentate:

config.cache_classes = true
config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching = true

Suppongo che il problema sia relativo all’istanza di mongrel che gira
sotto apache2.

Infatti se faccio

ruby script/server -e production

tutto va ok, gli errori non hanno piu’ i dati del debug.

Grazie a tutti

Ho appena provato. In production environment se richiedi localhost:3000
ti
fa vedere il debug, se richiedi [tuoip]:3000, non te lo fa vedere,
quindi è
proprio questo.

2008/5/7 giovanni lion [email protected]:

giovanni lion wrote:

Stai usando RewriteProxy?
No

Puoi postare la tua configurazione di apache?

Il problema sembra proprio essere il mongrel cluster, ma non riesco
proprio a capire dove sbaglio.

Il cluster senza passare per apache fa sempre vedere gli errori vero?

Leggendo
http://api.rubyonrails.com/classes/ActionController/Rescue.html,
potrebbe essere il fatto che per mongrel le richieste sono locali perchè
vengono da apache e se guardi nel sorgente di rescue_action:

if consider_all_requests_local || local_request?
rescue_action_locally(exception)
else
rescue_action_in_public(exception)
end

Prova barbaramente a ridefinire local_request? del modulo
ActionController::Rescue facendogli tornare sempre false.

Mah…

giovanni lion wrote:

Ho appena provato. In production environment se richiedi localhost:3000
ti
fa vedere il debug, se richiedi [tuoip]:3000, non te lo fa vedere,
quindi e’
proprio questo.

Grazie, il problema era proprio questo!

Ho risolto cambiando la configurazione di apache e mettendo come proxy

invece di

127.0.0.1:porta

e lo stesso mioip l’ho messo nel file di configurazione del mongrel
cluster.

Adesso tutte le richieste (anche quelle fatte a localhost) sono viste
come remote e quindi non da mai il debug.

Ciao e grazie.

Puoi risalire all’IP del browser con request.env[“HTTP_X_FORWARDED_FOR”]
o almeno, così funziona con la mia combinazione apache2/mongrel.

Ciao
Paolo

Sam P. wrote:

Sam P. wrote:

Grazie, il problema era proprio questo!

Ehmm, piccola divagazione sul tema…

A questo punto mi sono accorto che se da rails faccio una cosa come:

request.env[“REMOTE_ADDR”]

restituisce sempre il mio ip, non quello del PC che si sta collegando al
sito web!

Penso dipenda dal fatto che è sempre il server apache che si collega al
server mongrel e quindi dal punto di vista di rails l’indirizzo ip è
sempre quello del mio server.

Mi sa anche che non dipende dal fatto che ho messo [mioip], avrebbe dato
lo stesso output anche con 127.0.0.1

Penso ci debba essere qualche direttiva apache per mandare al proxy
mongrel anche l’ip della richiesta originaria, o qualcosa del genere…

Grazie a tutti.

Sam P. wrote:

Grazie, il problema era proprio questo!

Ehmm, piccola divagazione sul tema…

A questo punto mi sono accorto che se da rails faccio una cosa come:

request.env[“REMOTE_ADDR”]

restituisce sempre il mio ip, non quello del PC che si sta collegando al
sito web!

Penso dipenda dal fatto che è sempre il server apache che si collega al
server mongrel e quindi dal punto di vista di rails l’indirizzo ip è
sempre quello del mio server.

Mi sa anche che non dipende dal fatto che ho messo [mioip], avrebbe dato
lo stesso output anche con 127.0.0.1

Penso ci debba essere qualche direttiva apache per mandare al proxy
mongrel anche l’ip della richiesta originaria, o qualcosa del genere…

Grazie a tutti.

Puoi risalire all’IP del browser con request.env[“HTTP_X_FORWARDED_FOR”]
o almeno, così funziona con la mia combinazione apache2/mongrel.

OK!
Funziona, grazie!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs