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.Server
에 WriteTimeout
을 설정하여 소켓이 정지되는 것을 방지
할 수 있습니다. > 또는 nginx 502. 🎜
🎜흥미롭게도 시간이 초과되더라도 항상 200을 기록하지만 클라이언트에는 다음 오류가 발생합니다. 🎜
으아아아위 내용은 Gin-Gonic이 두 경우 모두 StatusOk를 반환하는 동안 Postman 및 nginX에서 내 소켓이 502로 중단되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!