
OpenBMC를 위한 Redfish, KVM, GUI, DBus를 모두 아우르는 웹서버
이 구성 요소는 OpenBMC를 위한 '만능' 임베디드 웹서버를 목표로 합니다.
웹서버는 몇 가지 개별 인터페이스를 구현합니다.
bmcweb는 프로토콜 수준에서 http 및 https를 지원합니다. TLS는 OpenSSL을 통해 지원됩니다. HTTP/1 및 HTTP/2는 TLS 연결을 위한 ALPN 등록과 http 연결을 위한 h2c 업그레이드 헤더를 사용하여 지원됩니다.
bmcweb는 여러 인증 프로토콜을 지원합니다:
이러한 각 인증 유형은 런타임 정책 변경(관련 Redfish API를 통해) 또는 구성 시간 옵션을 통해 활성화 또는 비활성화할 수 있습니다. 사용자 이름/비밀번호를 지원하는 모든 인증 메커니즘은 libpam으로 라우팅되어 인증 구현의 맞춤화를 허용합니다.
bmcweb의 모든 권한 부여는 라우팅 시점에, 라우트별로 결정되며 Redfish PrivilegeRegistry를 준수합니다.
*참고: Redfish가 아닌 기능은 가장 가까운 동등한 Redfish 권한 수준에 매핑됩니다.
bmcweb는 meson 빌드 파일에 따라 구성됩니다. 사용 가능한 옵션은 meson.options에 문서화되어 있습니다.
meson setup builddir
ninja -C builddir
구성 중 호스트 시스템에서 종속성을 찾을 수 없는 경우 meson은 bmcweb/subprojects에 언급된 랩 종속성을 통해 자동으로 다운로드합니다.
bmcweb는 프로세스 내부의 영구 데이터 저장을 위해 일부 온시스템 데이터에 의존합니다. 저장된 정확한 데이터와 읽기/쓰기 시점에 대한 세부 사항은 persistent_data 네임스페이스에서 확인할 수 있습니다.
bmcweb는 멀티파트 폼 업로드 중 임시 파일 저장을 위해 /tmp/bmcweb을 사용합니다. 이 디렉터리는 서비스 파일의 TemporaryFileSystem 지시문을 통해 서비스 재시작 시 systemd에 의해 자동으로 정리됩니다.
SSL 지원이 활성화되고 사용 가능한 인증서가 없을 경우, bmcweb는 서버를 시작하기 전에 자체 서명 인증서를 생성합니다. 이 인증서가 빌드되는 매개변수에 대한 자세한 내용은 bmcweb 소스 코드를 참조하십시오.
bmcweb는 zstd 및 gzip을 포함한 다양한 형태의 http 압축을 지원합니다. 클라이언트 헤더를 관찰하여 압축된 페이로드 지원 여부를 결정합니다.
bmcweb는 위성 BMC의 리소스를 집계할 수 있습니다. 이 기능을 활성화하고 사용하는 방법에 대한 자세한 내용은 AGGREGATION.md를 참조하십시오.