Microsoft MVP성태의 닷넷 이야기
오류 유형: 753. gunicorn과 uwsgi 함께 사용 시 ERR_CONNECTION_REFUSED [링크 복사], [링크+제목 복사]
조회: 7199
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

gunicorn과 uwsgi 함께 사용 시 ERR_CONNECTION_REFUSED

희한한 현상이군요. ^^;

테스트 용도의 간단한 Django App을 gunicorn으로도 실행해 보고,

$ gunicorn --bind 0.0.0.0:18090 myapp.wsgi:application

uwsgi로도 띄워가며 테스트를 했더니, 어느 순간부터 Chrome/Edge에서 접속 시 아래의 화면에서처럼 ERR_CONNECTION_REFUSED 오류가 발생하는 반면 동일한 경로를 Internet Explorer를 띄워 방문하면 정상적으로 서비스가 접속됩니다. ^^;

chrome_get_error_1.png

현상이 발생하는 것은 꼭 uwsgi에서였는데 이런 식으로 오류 로그가 남습니다.

$ uwsgi --http :18090 --wsgi-file ./myapp/wsgi.py
...[생략]...
...[아래는 Chrome/Edge로 접속한 경우의 오류 로그]...
invalid request block size: 5390 (max 4096)...skip
[uwsgi-http key: localhost:18090 client_addr: 127.0.0.1 client_port: 26346] hr_instance_read(): Connection reset by peer [plugins/http/http.c line 647]

...[아래는 IE로 접속한 경우의 정상 로그]...
[pid: 345|app: 0|req: 1/1] 127.0.0.1 () {34 vars in 513 bytes} [Thu Aug 12 05:43:57 2021] GET /bbs/ => generated 211 bytes in 20 msecs (HTTP/1.1 200) 5 headers in 166 bytes (1 switches on core 0)

(또 다른 해결책이 있는지 모르겠지만) 이런 현상을 복원하려면, Chrome/Edge의 F12 Developer Tools를 띄워 네트워크 탭에서 "Clear browser cookies"를 선택해야 합니다.

chrome_get_error_2.png

그나저나, 쿠키 삭제 후부터 재현 과정을 찾으려고 이거저거 건드렸는데 그때부터는 저런 현상이 발생하지 않습니다. ^^; 나중을 기약해야겠군요.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 8/12/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13230정성태1/26/20234106개발 환경 구성: 660. WSL 2 내부로부터 호스트 측의 네트워크로 UDP 데이터가 1개의 패킷으로만 제한되는 문제
13229정성태1/25/20235102.NET Framework: 2090. C# - UDP Datagram의 최대 크기
13228정성태1/24/20235227.NET Framework: 2089. C# - WMI 논리 디스크가 속한 물리 디스크의 정보를 얻는 방법 [2]파일 다운로드1
13227정성태1/23/20234926개발 환경 구성: 659. Windows - IP MTU 값을 바꿀 수 있을까요? [1]
13226정성태1/23/20234595.NET Framework: 2088. .NET 5부터 지원하는 GetRawSocketOption 사용 시 주의할 점
13225정성태1/21/20233848개발 환경 구성: 658. Windows에서 실행 중인 소켓 서버를 다른 PC 또는 WSL에서 접속할 수 없는 경우
13224정성태1/21/20234206Windows: 221. Windows - Private/Public/Domain이 아닌 네트워크 어댑터 단위로 방화벽을 on/off하는 방법
13223정성태1/20/20234407오류 유형: 838. RDP 연결 오류 - The two computers couldn't connect in the amount of time allotted
13222정성태1/20/20234093개발 환경 구성: 657. WSL - DockerDesktop.vhdx 파일 위치를 옮기는 방법
13221정성태1/19/20234321Linux: 57. C# - 리눅스 프로세스 메모리 정보파일 다운로드1
13220정성태1/19/20234433오류 유형: 837. NETSDK1045 The current .NET SDK does not support targeting .NET ...
13219정성태1/18/20234007Windows: 220. 네트워크의 인터넷 접속 가능 여부에 대한 판단 기준
13218정성태1/17/20233944VS.NET IDE: 178. Visual Studio 17.5 (Preview 2) - 포트 터널링을 이용한 웹 응용 프로그램의 외부 접근 허용
13217정성태1/13/20234524디버깅 기술: 185. windbg - 64비트 운영체제에서 작업 관리자로 뜬 32비트 프로세스의 덤프를 sos로 디버깅하는 방법
13216정성태1/12/20234777디버깅 기술: 184. windbg - 32비트 프로세스의 메모리 덤프인 경우 !peb 명령어로 나타나지 않는 환경 변수
13215정성태1/11/20236344Linux: 56. 리눅스 - /proc/pid/stat 정보를 이용해 프로세스의 CPU 사용량 구하는 방법 [1]
13214정성태1/10/20235880.NET Framework: 2087. .NET 6부터 SourceGenerator와 통합된 System.Text.Json [1]파일 다운로드1
13213정성태1/9/20235425오류 유형: 836. docker 이미지 빌드 시 "RUN apt install ..." 명령어가 실패하는 이유
13212정성태1/8/20235176기타: 85. 단정도/배정도 부동 소수점의 정밀도(Precision)에 따른 형변환 손실
13211정성태1/6/20235198웹: 42. (https가 아닌) http 다운로드를 막는 웹 브라우저
13210정성태1/5/20234298Windows: 219. 윈도우 x64의 경우 0x00000000`7ffe0000 아래의 주소는 왜 사용하지 않을까요?
13209정성태1/4/20234197Windows: 218. 왜 윈도우에서 가상 메모리 공간은 64KB 정렬이 된 걸까요?
13208정성태1/3/20234180.NET Framework: 2086. C# - Windows 운영체제의 2MB Large 페이지 크기 할당 방법파일 다운로드1
13207정성태12/26/20224444.NET Framework: 2085. C# - gpedit.msc의 "User Rights Assignment" 특권을 코드로 설정/해제하는 방법파일 다운로드1
13206정성태12/24/20224682.NET Framework: 2084. C# - GetTokenInformation으로 사용자 SID(Security identifiers) 구하는 방법 [3]파일 다운로드1
13205정성태12/24/20224991.NET Framework: 2083. C# - C++과의 연동을 위한 구조체의 fixed 배열 필드 사용 (2)파일 다운로드1
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...