서버 설정

정적 파일을 제공하는 것은 웹 개발의 핵심적인 부분입니다. 사용자에게 HTML, CSS, JS 및 이미지를 전달해야 합니다.

Hyperlane 프레임워크에서는 미들웨어를 사용하여 이를 수행합니다. 미들웨어는 요청을 가로채고 디스크에서 파일을 읽습니다.

이 프로세스는 네 단계로 이루어집니다:

  • 경로 해석(Path resolution): URL을 파일 시스템에 매핑합니다.
  • 콘텐츠 유형 감지(Content type detection): 적절한 MIME 유형을 찾습니다.
  • 파일 읽기(File reading): 디스크에서 데이터를 가져옵니다.
  • 응답 전달(Response delivery): 클라이언트에 파일을 전송합니다.

Hyperlane은 FileExtension 유틸리티를 통해 이 과정을 쉽게 만들어 줍니다. 다음과 같은 유형을 자동으로 감지합니다: • .html을 text/html로 • .css를 text/css로 • .js를 application/javascript로 • .png를 image/png로

정적 파일 제공을 위한 모범 사례:

  1. 비동기 I/O 사용 파일을 읽을 때는 항상 tokio::fs를 사용하세요. 이를 통해 서버가 차단(blocking)되는 것을 방지할 수 있습니다.

  2. 디렉토리 요청 처리 경로가 슬래시(/)로 끝나면 index.html 파일을 찾습니다. 이는 웹사이트를 올바르게 제공하는 데 도움이 됩니다.

  3. 올바른 헤더 설정 적절한 Content-Type을 전송하는지 확인하세요. 다른 도메인에 파일을 제공하는 경우 CORS 헤더를 추가하세요.

  4. 보안 및 오류

  • 파일 존재 여부를 확인하여 404 오류를 반환합니다.
  • 디렉토리 트래버설(directory traversal) 공격을 방지하기 위해 경로를 정제(sanitize)합니다.
  • 에셋(assets)이 비공개인 경우 인증 미들웨어를 사용하세요.

Hyperlane은 효율적이고 안전한 파일 서버를 구축할 수 있는 도구를 제공합니다. 이러한 도구를 라우트 필터와 결합하여 누가 파일을 볼 수 있는지 정확하게 제어할 수 있습니다.

프로젝트 코드: https://github.com/hyperlane-dev/hyperlane

출처: https://dev.to/tengxgfyrz67s/server-configuration-8i7