2015-04-22 17 views
8

Ho 2 applicazioni Web RoR ospitate su 2 server diversi. Per una determinata pagina, la richiesta viene fornita dalla seconda applicazione. Per il resto delle pagine, la richiesta viene fornita dall'applicazione principale. impostazioni Nginx per l'applicazione principalenet :: ERR_INCOMPLETE_CHUNKED_ENCODING nginx

location /customer/help/ { 
      proxy_pass http://second-application:3020/help_and_support/; 
    } 
    location /assets/ { 
      proxy_pass http://second-application:3020/assets/; 
    } 

questo ha funzionato bene fino a ieri. La pagina /customer/help/ non si carica correttamente. In Firefox mostra pagina vuota, in cromo carica parzialmente e console mostra sotto l'errore

net::ERR_INCOMPLETE_CHUNKED_ENCODING 

dopo il debug ho scoperto che problema potrebbe essere con i dati di immagine inviati tramite API. Il mio secondo app chiama un'API per ottenere le immagini e le visualizza a pagina

<% url_with_binary_data = "data:image/" + "jpeg" + ";base64," + u.photo_url.to_s %> 
<%= image_tag(url_with_binary_data, :class => "userpic") %> 

codice API per ottenere l'immagine

photo_url: Base64.encode64(u.photo.file.read).gsub("\n", '') 

risposta

12

Si potrebbe voler controllare se l'utente che esegue il lavoratore Nginx possiede la directory /var/lib/nginx.

Ho imparato che quando si dà una risposta troppo grande per Nginx, utilizza questa directory per scrivere come directory di lavoro per i file temporanei. Se il processo di lavoro non può accedervi, Nginx interromperà la trasmissione prima del suo completamento, quindi l'errore INCOMPLETE_CHUNKED_ENCODING.

+0

sto ottenendo lo stesso errore. Se il problema è legato a nginx, allora come possiamo risolverlo? – kd12

+0

Se navighi su '/ var/lib/nginx' ed esegui' ls -lah', qual è l'output? – DfKimera

+1

Non hai mai saputo come questo mi ha salvato! –

3

Per me, la soluzione era quella consigliata da DfKimer, ma invece di /var/lib/nginx era /var/cache/nginx.

1

Per me la soluzione è stata di abilitazione proxy_max_temp_file_size

0

urtato questo problema in AWS e ha scoperto che l'aggiunta di un paio di direttive proxy_buffer al file di sito di configurazione risolto i problemi:

server { 
    ... 

    location/{ 
     ... 
     proxy_buffers 8 1024k; 
     proxy_buffer_size 1024k; 
    } 
}