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
Peak Obsession,
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!