Transfer-encoding chunked hex markers appearing in output?
Henry
henry at hjst.org
Mon Mar 5 03:22:52 UTC 2012
I've written a very simple script which acts as a specific proxy for XML
feeds, reading from a source URL and passing the content straight
through. It's trivial and it's working fine when run as a standalone
HTTP server (via node.js).
However when I put nginx in front of it I get what appear to be the
chunk hex markers in the output - which obviously renders the XML
invalid. Here is an example of the output, note the "f32" at line 1, and
the repeated "1000" on lines 53 & 85, the
"58a" on lines 125 & 137 and so on.
https://gist.github.com/1973377
Here is my (reduced) nginx conf:
server {
listen 80;
server_name feeder;
location / {
proxy_pass http://127.0.0.1:8888;
}
}
I've confirmed that the chunks themselves don't contain the spurious
data (by dumping them to a file and checking with dhex), and apart from
the expected Server: change the HTTP headers are the same with and
without nginx:
HTTP/1.1 200
Server: nginx/1.0.12
Date: Mon, 05 Mar 2012 02:02:38 GMT
Content-Type: text/xml; charset=UTF-8
Connection: keep-alive
etag: rM1jGkNUA9AzVj2iMQN9KWwLgcQ
last-modified: Mon, 05 Mar 2012 02:07:53 GMT
expires: Mon, 05 Mar 2012 02:08:03 GMT
cache-control: private, max-age=0
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
transfer-encoding: chunked
I'm at a loss how to proceed and I'm hoping someone on the list
recognises the problem.
In case it's relevant, here is the code for the script, with the lines
that do the proxying highlighted:
https://github.com/hjst/feeder/blob/bd610bd981ab4b2184610775d3c6bf4b3f37d863/feeder.js#L45-47
More information about the nginx
mailing list