2

私は最近、C ++のPOCOプロジェクトに出くわし、それにかなり興味を持っています。また、試してみたい組み込みの HttpServer もあります。

例に従って、ポート 8000 でリッスンする単純な http サーバーを構築しました。次に、ポート 8000 へのすべてのリクエストを proxy_pass するように nginx を構成しています。

プロキシを使用すると、ブラウザーはコンテンツ サイズを最初の文字として表示し、末尾に 0 文字を追加します。たとえば、私は HttpServer からの "test" 文字列で応答するだけで、ブラウザ側では応答は "4 test 0" です。ポート 8000 に直接アクセスすると、数字なしで応答が正しく表示されます。

nginxプロキシで使用すると問題が発生するため、プロキシ設定に問題があると思いました。nginx のプロキシ構成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;
        }
}
4

1 に答える 1

1

あなたが得ているのは、チャンクエンコードされた応答です。4 は、内容が「test」のチャンクの長さです。チャンクされたメッセージ マーカーの末尾の 0。ほとんどの場合、nginx は Transfer-Encoding: chunked ヘッダーを応答に追加していません。

于 2012-04-10T19:29:50.643 に答える