POCO HttpServer with nginx proxy

POCO HttpServer with nginx proxy

本文关键字:proxy nginx with HttpServer POCO      更新时间:2023-10-16

我最近遇到了c++的POCO项目,并对它很感兴趣。它也有一个内置的HttpServer,我想玩一下。

我将按照示例构建一个简单的http服务器,监听端口8000。然后我配置我的nginx proxy_pass所有请求到端口8000。

使用代理,浏览器将内容大小显示为第一个字符,并在尾部添加0字符。例如,我只响应来自HttpServer的"测试"字符串,然后在浏览器端响应为"4测试0"。当我直接访问端口8000响应正确显示没有任何数字。

因为当我使用nginx代理时出现问题,所以我认为我的代理设置有问题。我阅读了nginx的代理配置wiki页面,但无法得到任何线索,为什么会发生这种情况。

my 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;
        }
}

您得到的是块编码响应。4是包含"test"内容的块的长度。分块消息标记末尾的0。最有可能的是nginx没有在响应中添加Transfer-Encoding: chunked header。