why 'client closed prematurely connection while sending request to upstream' ?
Yu.Cheung
nkcheungyu at gmail.com
Tue Apr 21 13:33:02 MSD 2009
it seems because the body size does not match the size
"Content-Length: " defined.
when the content-length is the body's size, it will be ok.
but i tried the wrong length in the request header, the 'client closed
...' came... [ I just want to make sure whether it will work in this
way, for security ]
I am not sure about this.
but this working way is what i need. :)
2009/4/21 Yu.Cheung <nkcheungyu at gmail.com>:
> Hi,
> All.
> I want to proxy twice. but there was something wrong with it.
>
> what I want to do:
>
> client send request----->nginx server------->sending(proxy_pass)
> its header to the backend server 1 ---->back to ngx server---->proxy
> pass to the second backend server---->back to ngx server---->response
> to client.
>
> but when the request was sent to backend server 1, 'the client
> closed prematurely connection while sending request to upstream' came,
> all of my http servsers are Nginx.
>
> the simple conf (just use virtual 3 servers) is:
>
> http {
> include mime.types;
> default_type text/html;
> expires -1;
>
>
> sendfile on;
>
>
> client_max_body_size 10000m;
>
>
>
> server {
>
> server_name front;
> listen 8389;
>
> location / {
>
> if ($uri ~ "/(.*)") {
> set $fn $1;
> }
>
> proxy_ignore_client_abort on;
>
> proxy_pass_request_body off;
> proxy_pass http://10.68.3.23:8390;
>
>
> location /pass {
> proxy_pass_request_body on;
> proxy_pass http://10.68.3.23:8388/$fn;
> }
>
> location /download {
> proxy_pass http://10.68.3.23:8388/$fn;
> }
>
>
> }#end of location /
>
> }#server
>
> server {
>
> server_name transfer;
> listen 8390;
> proxy_ignore_client_abort on;
>
> location / {
> set $loc "/pass";
> add_header "X-Accel-Redirect" $loc;
> return 301;
> }
>
>
> }#backend server 1
>
>
> server {
> server_name storage;
> listen 8388;
>
>
>
> location / {
> root /data;
> client_body_temp_path /data1/client_tmp;
>
> dav_methods PUT DELETE MKCOL COPY MOVE;
>
> create_full_put_path on;
> dav_access user:rw group:rw all:rw;
>
> limit_except GET {
> allow all;
> }
> }
>
> }#backend server 2
>
>
> }#http
>
> ---------------------------
> when i put one file to test, while sending to the first upstream
> server(backend 1), the connection closed.
> why ?
>
> Thanks.
>
More information about the nginx
mailing list