私は、次のコマンドを使用してubuntu:16.04
を実行しているドッカーコンテナにuWSGIをインストール:uWSGIが "--http-keepalive"フラグを尊重しないのはなぜですか?
apt-get update
apt-get install -y build-essential python-dev python-pip
pip install uwsgi
私は、単一の静的ファイル作成:
cd /root
mkdir static
dd if=/dev/zero bs=1 count=1024 of=static/data
を...そして最後に、次のコマンドでuWSGIを開始しました:
uwsgi \
--buffer-size 32768 \
--http-socket 0.0.0.0:80 \
--processes 4 \
--http-timeout 60 \
--http-keepalive \
--static-map2=/static=./
私は何の問題もなく、静的なファイルにアクセスすることができました。しかし、--http-keepalive
オプションを渡すにもかかわらず、cURLを持つ複数の要求を発行すると、次の出力が得られた:特に興味深いの
# curl -v 'http://myserver/static/data' -o /dev/null 'http://myserver/static/data' -o /dev/null
* Trying 192.168.1.101...
...
> GET /static/data HTTP/1.1
> Host: 192.168.1.101:8100
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 1024
< Last-Modified: Sat, 03 Dec 2016 22:06:49 GMT
<
{ [1024 bytes data]
100 1024 100 1024 0 0 577k 0 --:--:-- --:--:-- --:--:-- 1000k
* Connection #0 to host 192.168.1.101 left intact
* Found bundle for host 192.168.1.101: 0x563fbc855630 [can pipeline]
* Connection 0 seems to be dead!
* Closing connection 0
...
ラインです:
* Connection 0 seems to be dead!
これはWireSharkので確認した
ご覧のとおり、2つの完全に別々のTCP接続があります。最初のものはuWSGIによって閉じられます(パケット#10 - [FIN, ACK]
)。
私は間違っていますか? uWSGIがすぐに接続を終了する代わりに--http-keepalive
フラグを受け入れないのはなぜですか?