2011-04-30 2 views
2

나는 최근에 C++ 용으로 POCO project을 발견했으며 꽤 흥미 롭습니다. 그것은 또한 내가 놀고 싶은 HttpServer가 내장되어있다.nginx 프록시가있는 POCO HttpServer

내가 예제를 다음과 같은 간단한 HTTP 서버가 그럼 난 포트 프록시와 8000

에 대한 모든 요청을 proxy_pass 내의 nginx를 구성하고있어 포트 8000에서 수신 내장하고있어, 브라우저는 매우 같은 내용의 크기를 보여줍니다 꼬리에 0 문자를 추가합니다. 예를 들어, HttpServer의 "test"문자열로 응답하고 브라우저 측에서 응답은 "4 test 0"입니다. 포트 8000에 직접 액세스 할 때 응답이 숫자없이 올바르게 표시됩니다.

nginx 프록시와 함께 사용할 때 문제가 발생하므로 프록시 설정에 문제가 있다고 생각합니다. 나는 nginx의 proxy configuration 위키 페이지를 읽었지만, 왜 이런 일이 일어나는지 전혀 알지 못했습니다.

내의 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는 콘텐츠 "test"가있는 청크의 길이입니다. 청크 분할 된 메시지 마커의 끝에있는 0입니다. likley nginx는 Transfer-Encoding을 추가하지 않습니다. 응답에 청크 헤더가 추가됩니다.