가 나는 부두 노동자의 컨테이너가 다음 명령을 사용하여 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
옵션을 통과 컬 여러 요청을 발행에도 불구하고 다음과 같은 출력 결과 :
* Connection 0 seems to be dead!
이 Wireshark는 함께 확인되었다 :
특별한 관심의
# 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
...
두 가지 완전히 다른 TCP 연결이 있습니다. 첫 번째 항목은 uWSGI (패킷 # 10 - [FIN, ACK]
)에 의해 닫힙니다.
내가 뭘 잘못하고 있니? uWSGI가 즉시 연결을 닫는 대신 --http-keepalive
플래그를 사용하지 않는 이유는 무엇입니까?