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
on 05.05.2008 21:21
on 06.05.2008 15:03
Non è che in config/environments/production.rb hai una linea questa? config.log_level = :debug Dovrebbe stare a :info, oppure essere commentata. Paolo Sam Pei 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
on 06.05.2008 17:40
Paolo Montrasio 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
on 07.05.2008 12:11
> 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?
on 07.05.2008 16:08
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!
on 07.05.2008 16:47
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...
on 07.05.2008 16:54
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 <giovanni.lion@gmail.com>:
on 07.05.2008 17:48
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 [mioip]:porta 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.
on 07.05.2008 18:08
Sam Pei 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.
on 08.05.2008 23:00
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 Pei wrote: > Sam Pei 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.