서버 설정
프로덕션 웹 애플리케이션을 위해서는 적절한 서버 설정이 필수적입니다. Hyperlane은 서버를 관리할 수 있는 두 가지 방법인 ServerConfig와 RequestConfig를 제공합니다.
ServerConfig는 HTTP 서버 자체를 관리합니다. 다음 항목들을 설정할 때 사용합니다:
- Address: 모든 인터페이스에서 리스닝하려면 0.0.0.0:80을 사용하세요. 로컬 머신으로 제한하려면 127.0.0.1:8080을 사용하세요.
- Nodelay: 지연 시간을 줄이려면 이 값을 true로 설정하세요. 버퍼링하는 대신 작은 패킷을 즉시 전송합니다.
- TTL: 나가는 패킷의 Time to Live를 설정합니다. 대부분의 경우 128 값이 적당합니다.
RequestConfig는 개별 HTTP 요청을 관리합니다. 이는 리소스 고갈 및 공격으로부터 서버를 보호합니다. JSON을 사용하여 다음 제한 사항을 설정할 수 있습니다:
- buffer_size: 바이트 단위의 읽기 버퍼 크기.
- max_path_size: 최대 URL 경로 길이.
- max_header_count: 요청당 헤더 제한 수.
- max_body_size: 허용되는 최대 요청 본문 크기입니다. 이는 서비스 거부(DoS) 공격을 방지합니다.
- read_timeout_ms: 요청 데이터를 읽는 데 대한 시간 제한.
Hyperlane을 사용하면 JSON 문자열에서 이러한 설정을 불러올 수 있습니다. 이를 통해 컨테이너 환경에서 환경 변수를 쉽게 사용할 수 있습니다.
프로덕션을 위한 권장 사항:
- 설정을 위해 JSON을 사용하세요. 배포가 유연해집니다.
- 엄격한 요청 제한을 설정하세요. max_body_size를 실제 요구 사항에 맞게 설정하세요.
- 지연 시간을 낮게 유지하기 위해 API 서버의 경우 nodelay를 활성화하세요.
- 읽기 제한 시간(read timeout)을 설정하세요. 이를 통해 느린 클라이언트가 연결을 계속 유지하는 것을 방지할 수 있습니다.
- 가능한 경우 0.0.0.0 대신 특정 인터페이스에 바인딩하세요.
Hyperlane은 코드 또는 JSON을 통해 제어권을 제공합니다. 이러한 2단계 접근 방식은 서버가 빠르고 안전하게 유지되도록 보장합니다.
프로젝트 코드: https://github.com/hyperlane-dev/hyperlane 출처: https://dev.to/tengxgfyrz67s/server-configuration-1dp9