Content-length Missing when response proxy_pass a special backend

fzuslide nginx-forum at nginx.us
Sun Oct 9 14:26:37 UTC 2011


I have 2 backends in my applications.There are pure backend response
example:

First backend: kwfs
yangqingchang at yqc:~$ curl -X GET -I
http://192.168.1.118:8080/kwfs/AAChTwAAADcAAwAc
HTTP/1.1 200 OK
Server: QWS/1.0
Content-Type: application/octet-stream
Connection: keep-alive
Cache-Control: max-age=604800
Date: Sun, 09 Oct 2011 13:35:57 GMT
Content-Length: 1239


Second backend: account
yangqingchang at yqc:~$ curl -X GET -I
http://192.168.60.99:18000/account/visualconfirm/?page=register
HTTP/1.1 200 OK
Content-Length: 1044
Etag: "f91a3c56177d3edf13a96e0772410d23b531cef5"
Content-Type: image/jpeg
Server: TornadoServer/1.0


After kwfs response across nginx, "Transfer-Encoding: chunked" appeared
in it's headers , and "Content-Length" was replaced.

First proxy: kwfs
yangqingchang at yqc:~$ curl -X GET -I
http://192.168.60.96:8000/kwfs/AAChTwAAADcAAwAC
HTTP/1.1 200 OK
Date: Sun, 09 Oct 2011 13:58:07 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
Server: QWS/1.0
Cache-Control: max-age=604800

Second proxy:  account
yangqingchang at yqc:~$ curl -X GET -I
http://192.168.60.96:8000/account/visualconfirm/?page=register
HTTP/1.1 200 OK
Date: Sun, 09 Oct 2011 13:59:07 GMT
Content-Type: image/jpeg
Connection: keep-alive
Content-Length: 1014
Etag: "bb6c20817a926b5ad761ec7a229f0f6d20adf1cb"
Server: TornadoServer/1.0


I need the "Content-Length" for calculating the downloading process in
client.
But I really don't know with same config, why "Content-length" missing
when a special response proxy_pass by nginx, and another is ok.
Could anybody tell me why? Thanks a lot :)


My config:

server {
    listen       192.168.60.96:8000;
    client_max_body_size 2M;

    location /kwfs {
        proxy_redirect off;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.118:8080;
    }

    location /account {
        proxy_redirect off;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.60.99:18000;
    }

}

My nginx :
nginx -V
nginx version: nginx/0.7.65
built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5) 
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx-0.7.65
--with-http_stub_status_module --with-http_gzip_static_module
--with-http_ssl_module --with-http_realip_module
--with-openssl=/home/yangqingchang/Downloads/openssl-0.9.8l
--with-pcre=/home/yangqingchang/Downloads/pcre-8.01
--add-module=/home/yangqingchang/Downloads/nginx_upload_module-2.0.12

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,216427,216427#msg-216427



More information about the nginx mailing list