Eu tenho um aplicativo que pode aceitar uploads de arquivos e colocá-los no S3. Alguns arquivos não conseguiram fazer upload ao passar pelo proxy reverso nginx
.
Agora, tenho keepalive_timeout 120;
definido no nginx.conf e
client_max_body_size 100m; <--- server {}
proxy_connect_timeout 300; <-- location / {}
proxy_send_timeout 300; <-- location / {}
proxy_read_timeout 300; <-- location / {}
send_timeout 300; <-- location / {}
definido nas configurações de sites disponíveis / sites habilitados para o aplicativo.
Mesmo depois de reiniciar nginx
, este problema ocorre novamente. Mensagem de error.log relevante:
2014/06/12 13:06:52 [error] 2782#0: *1562089 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 173.22.158.100, server: *.url.me, request: "POST /policy/5399ea3712500dc3447ec14d/fileUpload HTTP/1.1", upstream: "http://127.0.0.1:3001/policy/5399ea3712500dc3447ec14d/fileUpload", host: "url.me", referrer: "http://url.me/policy/5399ea3712500dc3447ec14d"
O problema é que não acho que isso seja realmente um problema de tempo limite. O upload de um arquivo demora cerca de 8 segundos para ser enviado sem passar pelo proxy. Usando o proxy, o arquivo ficará travado por um ou dois minutos e, em seguida, haverá erros.
90% dos arquivos enviados para o aplicativo são PDFs, todos abaixo do limite de tamanho do corpo.
Então, o que você sugere?