Welcome! Log In Create A New Profile

Advanced

Proxy buffering

Andrew Tynefield
November 14, 2013 11:38PM
Hello all,

I've configured nginx as a load balancing proxy for my backend servers. My
backend is expecting multi-part uploads for large files in small chunks
(5-15mb). The issue I'm encountering, is that I would like for nginx to
just pass the chunked data along to the backend servers and not buffer the
requests.

Current configuration:

upstream riak-cs {
server 192.168.1.19:8080;
server 192.168.1.22:8080;
#least_conn;
}

server {
listen 80;
server_name cs.domain.com *.cs.domain.com;
location / {
proxy_pass http://riak-cs;
proxy_set_header Host $host;
proxy_connect_timeout 59s;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffering off;
proxy_pass_header Server;
add_header Backend $proxy_host:$proxy_port;
add_header Upstream-Response-Time $upstream_response_time;

}

}

user nginx;
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 4096;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request"
'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_requests 100;
client_max_body_size 1000M;
keepalive_timeout 3;
reset_timedout_connection on;
underscores_in_headers on;

include /etc/nginx/conf.d/*.conf;

}


I have tried disabling buffers as shown above, however, when I capture the
packets on the backend servers, I see that the stream of data doesn't occur
until after the full body of the upload has completed.

[ jedi ] ~ # nginx -v
nginx version: nginx/1.4.3

If I enabled info error logging, I see:
2013/11/14 22:34:47 [warn] 2698#0: *1 a client request body is buffered to
a temporary file /var/cache/nginx/client_temp/0000000001, client:
192.168.1.1, server: cs.domain.com, request: "PUT
/huge/Windows7Ultimate.iso?partNumber=1&uploadId=1RjFvAcQTsWmpnIYD7nL7Q==
HTTP/1.1", host: "big.cs.domain.com"

How can I prevent this all together?

Thanks,
Andrew

--
[Andrew Tynefield]
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Proxy buffering

Andrew Tynefield November 14, 2013 11:38PM

Re: Proxy buffering

Maxim Dounin November 15, 2013 05:52AM

Re: Proxy buffering

Downchuck December 18, 2013 01:34AM

Re: Proxy buffering

Pasi Kärkkäinen December 18, 2013 07:44AM

Re: Proxy buffering

Maxim Dounin December 18, 2013 10:22AM

Re: Proxy buffering

Pasi Kärkkäinen December 19, 2013 02:16PM

Re: Proxy buffering

JSurf May 08, 2014 04:45AM

Re: Proxy buffering

Maxim Dounin May 09, 2014 12:08AM

Re: Proxy buffering

JSurf May 09, 2014 05:39AM

Re: Proxy buffering

sleepingstu July 25, 2014 03:51AM

Re: Proxy buffering

Pasi Kärkkäinen October 03, 2014 06:14AM

Re: Proxy buffering

Pasi Kärkkäinen November 25, 2014 02:42PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 313
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready