Gin-Gonic이 두 경우 모두 StatusOk를 반환하는 동안 Postman 및 nginX에서 내 소켓이 502로 중단되는 이유는 무엇입니까?

王林
풀어 주다: 2024-02-09 20:27:09
앞으로
327명이 탐색했습니다.

为什么我的 Postman 和 nginX 中的 502 上的套接字挂起,而 Gin-Gonic 在这两种情况下都返回 StatusOk?

php 편집자 Yuzi는 이 기사에서 모든 사람이 공통적으로 묻는 질문에 답할 것입니다. "왜 내 소켓은 Postman과 nginX에서 502에 멈추는 반면 Gin-Gonic은 두 경우 모두 실패합니까?" 다양한 네트워크 프레임워크와 서버의 동작을 분석하고 독자가 유사한 문제를 해결하는 데 도움이 되는 솔루션을 제공합니다.

질문 내용

문제를 단순화하기 위해 응답을 반환하는 데 최대 2분이 걸릴 수 있는 매우 긴 경로가 있습니다. 이제 내 예제 http 핸들러는 다음과 같습니다.

으아아아

이제 전화하면 [GET] /health 路由邮递员返回 Error: 套接字挂起 在从 gin-gonic 返回响应的确切时间,记录了 200 Ok:

[GIN] 2024/01/24 - 11:10:58 | 200 | 200 30.084587215s | ::1 |获取“/health”

이제 nginX 뒤에 있는 동일한 프로젝트를 역방향 프록시로 사용하면 서비스 로그 시 API 응답에서 502 nginX 오류가 발생합니다 200 Ok .

질문은 gin-gonic이 성공적으로 응답을 반환했는데도 클라이언트 측에서 오류가 발생하는 이유는 무엇입니까? 이 문제를 어떻게 해결할 수 있나요?

라우팅 시간 초과와 관련이 있다고 생각해서 github.com/gin-contrib/timeout 라이브러리를 사용했지만 성공하지 못했습니다. github.com/gin-contrib/timeout 库,因为我认为它与路由超时有关,但没有成功。

解决方法

gin-gonic 中,您可以在 http.Server 上设置 WriteTimeout 以防止 socket 挂起

해결 방법

gin-gonic에서는 http.ServerWriteTimeout을 설정하여 소켓이 정지되는 것을 방지할 수 있습니다. > 또는 nginx 502. 🎜 🎜흥미롭게도 시간이 초과되더라도 항상 200을 기록하지만 클라이언트에는 다음 오류가 발생합니다. 🎜 으아아아

위 내용은 Gin-Gonic이 두 경우 모두 StatusOk를 반환하는 동안 Postman 및 nginX에서 내 소켓이 502로 중단되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!