2011-04-30 61 views
2

我最近遇到了C++的POCO project,对它很感兴趣。它也有一个内置的HttpServer,我想玩。带nginx代理的POCO HttpServer

我下面的实例和构建一个简单的HTTP服务器侦听端口8000。然后,我在配置我的nginx到proxy_pass到端口8000

随着代理的所有请求,浏览器显示内容的大小作为非常第一个字符并将0字符添加到尾部。例如,我只是用HttpServer的“test”字符串进行响应,然后在浏览器端响应是“4 test 0”。当我直接访问端口8000时,响应正确显示,没有任何数字。

因为问题发生时,我用它与nginx代理,所以我认为有关我的代理设置有问题。我阅读了nginx的proxy configuration wiki页面,但不知道为什么会发生这种情况。

我的nginx的conf如下,

upstream pocotest { 
     server 127.0.0.1:8000; 
} 

server { 
     listen 80; 
     server_name localhost; 
     location/{ 
       proxy_pass http://pocotest; 
       proxy_set_header X-Real-Ip $remote_addr; 
       proxy_buffering on; 

       proxy_pass_request_body on; 
       proxy_pass_request_headers on; 
     } 
} 

回答

1

你找回什么是分块编码的响应。 4是内容为“测试”的块的长度。分块消息标记末尾的0。 大多数情况下,nginx并没有将Transfer-Encoding:chunked头添加到响应中。