대용량 사진 및 동영상 업로드에 맞게 리버스 프록시 시간 초과 설정하기

에바 왕 는 기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

허용할 가장 느린 정상 업로드 시간을 기준으로 여유를 더해 프록시 타임아웃을 설정하고, 애플리케이션과 모든 업스트림 프록시도 최소한 그만큼 허용하도록 설정하세요. 무제한 타임아웃을 선택해 모든 업로드 실패를 해결하려고 하지 마세요.

큰 사진이나 동영상은 실패하지만 같은 앱이 정상적으로 작동할 수 있습니다. 요청 본문, 업스트림 처리 또는 응답이 서로 다른 제한을 초과할 수 있기 때문입니다. 먼저 상태 코드, 경과 시간, 파일 크기 및 프록시 로그를 수집하세요. 이러한 정보로 본문 크기 거부인지, 유휴 타임아웃인지, 백엔드 타임아웃인지, 클라이언트 연결 종료인지 구분할 수 있습니다.

업로드를 종료시키는 단계를 확인하세요

하나의 파일을 정해 반복 테스트하고, 전송 중, 진행률 표시줄이 100%에 도달한 후, 또는 서버가 미디어를 처리하는 동안 중 언제 실패하는지 기록하세요. 각 단계는 서로 다른 연결 및 타임아웃과 관련됩니다.

항상 같은 바이트 수에서 실패한다면 본문 크기 제한일 가능성이 높고, 항상 같은 유휴 시간 후에 실패한다면 타임아웃일 가능성이 높습니다. 업로드 완료 후 게이트웨이 오류가 발생한다면 프록시에서 애플리케이션으로 전달된 후의 대기 시간 또는 애플리케이션 자체의 처리 제한을 의심할 수 있습니다.

프록시 액세스 및 오류 로그를 애플리케이션 로그와 함께 확인하세요. 클라이언트가 먼저 연결을 종료했다면 프록시 타임아웃만 늘려서는 해결되지 않습니다. 모바일 백그라운드 동작, VPN 안정성 및 브라우저의 요청 경로를 확인하세요.

근거 있는 타임아웃 예산을 측정하세요

가장 큰 허용 파일을 지원되는 가장 느린 업스트림 속도로 나누어 전송 시간을 추정한 다음, TLS, 버퍼링 및 변동하는 처리량을 고려해 여유를 더하세요. 이 값을 정상 작업을 위한 상한으로 사용하되, 모든 느린 연결을 영원히 유지해야 한다는 의미로 받아들이지는 마세요.

전체 소요 시간과 유휴 시간을 구분하세요. 예를 들어 NGINX는 별도의 프록시 타임아웃 지시어를 문서화하고 있으며, 일부 설정은 전체 응답 시간보다 연속된 작업 사이의 간격을 측정합니다.

서비스 거부 공격 위험을 염두에 두세요. 연결 유지 시간을 크게 늘리기 전에 인증 및 속도 제어를 통해 업로드 엔드포인트를 제한하고, 프록시의 관리 인터페이스를 외부에 노출하지 마세요.

과도하게 조정하지 말고 모든 계층을 일치시키세요

요청 본문 크기를 애플리케이션이 지원하는 최대값 이상으로 설정하세요. 그런 다음 관찰된 실패 단계에 맞춰 클라이언트 본문, 업스트림 연결, 업스트림 읽기 및 업스트림 전송 타임아웃을 조정하세요.

더 바깥쪽의 CDN, 터널, 로드 밸런서 또는 더 짧고 변경할 수 없는 제한을 가진 두 번째 리버스 프록시가 있는지 확인하세요. 실제로 적용되는 제한은 체인에서 가장 작은 제한이므로 내부 프록시만 변경해도 눈에 띄는 결과가 없을 수 있습니다.

애플리케이션 URL과 프록시 라우트를 문서화해 두세요. 네트워크 공유에서 Immich를 사용하는 방법에 관한 ZimaSpace 가이드는 업로드 경로 오류와 스토리지 마운트 지연 및 중단을 구분하는 데 도움이 됩니다.

-15% OFF

느리고 큰 업로드 및 중단된 업로드를 다시 테스트하세요

처음 실패한 파일을 원래 위치에서 원래 네트워크 속도로 업로드하세요. HTTP 성공 코드만이 아니라 완료, 애플리케이션 인덱싱, 재생 또는 열람 가능한 자산 생성까지 확인되어야 성공입니다.

테스트 연결을 지원되는 최소 속도로 제한한 뒤 다시 테스트하세요. 그런 다음 업로드 하나를 의도적으로 중단하세요. 임시 파일과 불완전한 데이터베이스 레코드는 애플리케이션 동작에 따라 정리되어야 합니다.

로그에 백엔드 충돌, 스토리지 오류 또는 변경할 수 없는 외부 제공업체 제한이 표시되면 타임아웃을 더 늘리지 마세요. 과도한 값을 되돌리고 실패한 계층을 수정한 다음, 측정된 작업량을 일관되게 처리할 수 있는 가장 작은 타임아웃을 유지하세요.

FAQ

모든 프록시 타임아웃을 같은 값으로 설정해야 하나요? 아니요. 연결 설정, 클라이언트 본문 읽기, 업스트림 응답 대기 및 다운스트림 전송은 서로 다른 단계를 보호합니다.

작은 사진은 작동하는데 동영상은 왜 실패하나요? 동영상은 본문 크기 임계값을 초과하거나, 유휴 제한 시간보다 오래 걸리거나, 서버 측 처리 시간이 더 길어질 수 있습니다. 로그와 실패 시점을 확인하면 원인을 파악할 수 있습니다.

지원 및 팁

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.