Sto eseguendo nginx/ruby-on-rail e ho un semplice modulo multipart per caricare i file. Tutto funziona correttamente finché non decido di limitare la dimensione massima dei file che voglio caricare. Per fare ciò, imposto il nginx a 1m (1MB) e ci si aspetta uno stato HTTP 413 (Richiedi Entità troppo grande) in risposta quando tale regola si interrompe.nginx upload client_max_body_size issue
Il problema è che quando aggiungo un file 1.2 MB, invece di visualizzare la pagina di errore HTTP 413, il browser si blocca un po 'e poi muore con un "collegamento è stato ripristinato mentre la pagina stava caricando" il messaggio.
Ho provato praticamente ogni opzione che offre Nginx, niente sembra funzionare. Qualcuno ha qualche idea su questo?
Ecco la mia nginx.conf:
worker_processes 1;
timer_resolution 1000ms;
events {
worker_connections 1024;
}
http {
passenger_root /the_passenger_root;
passenger_ruby /the_ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.x.com;
client_max_body_size 1M;
passenger_use_global_queue on;
root /the_root;
passenger_enabled on;
error_page 404 /404.html;
error_page 413 /413.html;
}
}
Grazie.
**Edit**
Ambiente/UA: Windows XP/Firefox 3.6.13
Oh, vorrei sottolineare che questa risposta presuppone che il client sta inviando 'Content-Length' piuttosto che' Transfer-Encoding: chunked'. –
L'autore di nginx ha pubblicato una patch per risolvere questo problema sulla mailing list: http://nginx.2469901.n2.nabble.com/client-max-body-size-and-100-Continue-413-Request-Entity-Too -Large-tp7582547p7582554.html Nessuna parola, tuttavia, se verrà aggiunta al ramo stabile 1.2.x. –
Grazie, questo in realtà spiega molto. Certamente sembra che "Aspettatevi" sia la strada da percorrere per richieste di grandi dimensioni. – krukid