HTTP3 지원 여부?

아쉽게도 현재는 지원하지 않습니다.

저는 (메모를 확인해 보니) 2019년부터 컨테이너의 HTTP/3 대응을 위한 브랜치를 유지해 왔으며, GitHub - discourse/discourse_docker at http3 · GitHub 에서 확인할 수 있습니다.

이를 광범위하게 배포하지 않은 이유는 전체 생태계의 여러 문제들 때문입니다:

  • Nginx 개발이 극도로 느려졌으며, HTTP/3이나 Early Hints와 같은 새로운 웹 기술을 따라가지 못하고 있습니다.
  • Nginx의 모듈형 아키텍처 덕분에 모듈을 통해 추가할 수 있었으며, 제 브랜치는 이를 위해 Cloudflare의 nginx 모듈인 quiche를 사용합니다. 그러나 Cloudflare 역시 nginx에서 손을 뗐고, 해당 모듈은 프로덕션 레디(Production-ready)로 간주된 적이 없습니다.
  • Caddy와 같이 더 현대적인 웹 서버로 마이그레이션을 고려해 보았지만, 사용자가 직접 커스터마이즈하는 셀프호스팅 소프트웨어를 배포하는 상황에서 이러한 변경은 매우 어렵습니다.
  • HAProxy로의 전환은 더 수월할 수 있지만, 우리는 정적 파일 서빙에 nginx를 사용하는데 HAProxy는 이를 지원하지 않습니다.
  • OpenSSL 유지보수자들이 기본적으로 QUIC를 방해하여 생태계 전체의 진전을 10년치만큼 중단시켰다는 사실입니다.

위 모든 사항과 TCP → UDP 전환에 수반되는 고유한 문제들로 인해, 우리는 이러한 변경을 감수하기에는 리스크가 너무 크다고 판단했습니다.

이는 매우 안타까운 일입니다. 지난 4년간 평균적인 가정에서 대부분의 트래픽이 이미 HTTP/3를 사용하는데, YouTube, Amazon, Shopify, Instagram, Twitch.tv 등 모든 대형 플레이어가 수년 전부터 이를 채택했기 때문입니다. 이는 빅테크와 소규모 사이트 간의 격차를 더욱 벌리게 만들며, 우리는 SPDY, HTTP/2, Brotli에서 그랬던 것처럼 초기 채택자가 될 수 없었던 점이 아쉬움으로 남습니다.

이 모든 점을 고려할 때, 이 복잡한 문제를 1클릭으로 해결하기 원하신다면 Cloudflare를 Discourse 인스턴스 앞에 배치하여 사용하실 수 있습니다.

12개의 좋아요