JuiceFS로 WebDAV 공유를 생성하는 방법

WebDAV는 HTTP 기반 파일 공유 프로토콜로 원래 다중 사용자 문서의 공동 편집을 위해 설계되었으며 인터넷 기반 파일 저장, 데이터 동기화 및 기타 네트워크 디스크 응용 프로그램 시나리오에서도 널리 사용됩니다.

잘 알려진 문서 관리 도구 Zotero, iPad의 인기 있는 메모 작성 도구 Notability, 국내 사무용 소프트웨어 WPS, 크로스 -platform Markdown 메모 작성 도구 Joplin, ES 파일 관리자 등 , 즉, 자체 WebDAV 저장소가 있는 한 WebDAV를 사용하여 이러한 소프트웨어에서 생성한 문서 데이터를 저장할 수 있습니다.

혼동을 피하기 위해 WebDAV와 관련된 개념을 명확히 할 필요가 있습니다.아래 그림과 같이 WebDAV는 서버와 클라이언트의 두 부분으로 나뉩니다.

  • WebDAV 서버 : 파란색 구름은 WebDAV 서버를 나타내며 클라이언트의 연결에 응답하고 읽기 및 쓰기 요청과 데이터를 저장하는 데 사용됩니다.
  • WebDAV 클라이언트 : WebDAV 클라이언트가 내장된 다양한 프로그램으로 휴대폰, 태블릿 또는 컴퓨터에서 실행됩니다.

WebDAV 아키텍처의 구성을 이해한 후 우리가 해야 할 일은 자체적으로 WebDAV 서버 집합을 구성하는 것입니다. 아키텍처 다이어그램의 일부입니다.

과거에는 Apache HTTP 서비스나 Nginx와 같은 웹 서버 소프트웨어를 사용하여 WebDAV 공유를 구성했는데, 바로 사용할 수 없었기 때문에 WebDAV 모듈을 추가로 로드하거나 수동으로 컴파일해야 하여 WebDAV 구성이 복잡해졌습니다. 어느 정도.

일부 NAS 운영 체제에서도 WebDAV 공유 구성 기능을 제공하지만 인트라넷 환경에 의해 제한되어 구성한 WebDAV 공유는 인터넷 기반 서비스 제공을 활용하기 어렵습니다.

현재 보다 일반적이고 보다 효과적이고 간단한 WebDAV 공유 서비스 구성 솔루션을 찾고 있다면 JuiceFS가 시도해 볼 가치가 있는 솔루션일 수 있습니다.

JuiceFS는 개체 스토리지 및 데이터베이스에 의존하는 클라우드 지향 오픈 소스 분산 파일 시스템으로 탄력적인 용량으로 고성능 스토리지 시스템을 신속하게 구축할 수 있습니다. JuiceFS는 다양한 애플리케이션에 쉽게 액세스할 수 있는 POSIX, S3 API, HDFS API, Kubernetes CSI 드라이버, Docker 볼륨 플러그인, WebDAV 및 기타 풍부한 액세스 인터페이스를 제공합니다.

다음으로 JuiceFS를 사용하여 공간 유연성, 보안 및 실용성을 갖춘 WebDAV 서비스를 쉽고 빠르게 구성하는 방법을 공유하겠습니다.

준비

이 기사에서 소개하는 WebDAV 공유는 JuiceFS 파일 시스템에 구축된 JuiceFS에서 제공하는 액세스 인터페이스입니다. 따라서 구성하기 전에 JuiceFS 파일 시스템을 생성해야 합니다.

JuiceFS 파일 시스템은 데이터 저장소와 메타데이터 엔진의 두 부분으로 구성됩니다.데이터 저장소는 다양한 클라우드 컴퓨팅 플랫폼에서 제공하는 개체 저장소 서비스이거나 자체 구축된 MinIO 또는 로컬 디스크일 수 있습니다. 메타데이터 엔진은 파일의 메타데이터 정보를 저장하는 데 사용되며 Redis, MySQL, PostgreSQL과 같은 네트워크 기반 데이터베이스 또는 SQLite 또는 BadgerDB와 같은 독립형 데이터베이스를 사용할 수 있습니다.

인터넷을 통해 WebDAV 공유에 액세스할 수 있도록 다음으로 고정 공용 IPv4 주소가 있는 클라우드 서버에 WebDAV 공유를 생성합니다. WebDAV는 한 곳에서 생성되기 때문에 IP 주소나 도메인 이름으로 어디서나 액세스할 수 있습니다. 따라서 JuiceFS를 구성하는 데이터 저장소 및 메타데이터 엔진은 다음과 같이 보다 유연하게 일치시킬 수 있습니다.

  1. 로컬 디스크 + 독립형 데이터베이스: 클라우드 서버의 로컬 디스크의 가용 공간이 충분한 경우.
  2. 오브젝트 스토리지 + 독립형 데이터베이스: 더 큰 용량의 스토리지 공간이 필요한 경우.
  3. 개체 스토리지 + 네트워크 데이터베이스: 더 큰 스토리지 공간이 필요하고 다른 호스트가 동시에 JuiceFS에 액세스해야 하는 경우.

클라우드 서버

다음과 같이 구성된 클라우드 서비스가 있다고 가정합니다.

  • 시스템: 우분투 서버 22.04 AMD64
  • CPU:1 핵
  • 메모리: 1GB
  • 하드 디스크: 25GB
  • IP 주소: 120.118.8.10(데모 목적으로 무작위로 작성된 FAKE IP)

이 기사에서 설명하는 시나리오의 경우 모든 클라우드 플랫폼의 엔트리 레벨 클라우드 서버가 요구 사항을 충족할 수 있으며 핵심은 공용 네트워크 IPv4 주소를 갖는 것입니다.

객체 스토리지

다음 버킷을 준비했다고 가정합니다.

이 기사에서 설명하는 시나리오의 경우 오브젝트 스토리지가 필요하지 않으며 클라우드 서버의 하드 디스크 공간이 충분하면 해당 하드 디스크를 JuiceFS의 오브젝트 스토리지로 사용할 수 있습니다.

데이터 베이스

이 기사에서 설명하는 시나리오의 경우 독립 실행형 데이터베이스가 가장 쉬운 선택이며 여기서는 단일 파일 SQLite 데이터베이스를 사용합니다. 미리 준비할 필요 없이 JuiceFS 파일 시스템이 생성될 때 자동으로 생성됩니다.

필요한 경우 " 메타데이터 엔진 설정 방법 " 문서를 참조하여 다른 유형의 데이터베이스를 사용할 수도 있습니다.

JuiceFS 파일 시스템 만들기

  1. 클라이언트 설치
curl -sSL https://d.juicefs.com/install | sh -
  1. 파일 시스템 생성

다음은 파일 시스템을 생성하는 두 가지 방법이며 실제 필요에 따라 하나를 선택하십시오.

방법 1: 로컬 하드 디스크를 오브젝트 스토리지로 사용

juicefs format sqlite3://myjfs.db myjfs

방법 2: 오브젝트 스토리지 서비스 이용 (오브젝트 스토리지에 데이터 저장)

juicefs format --storage oss \
--bucket https://myjfs.oss-cn-shanghai.aliyuncs.com \
--access-key abcdefg \
--secret-key gfedcba \
sqlite3://myjfs.db myjfs

WebDAV 서비스 배포

JuiceFS 파일 시스템이 준비되면 WebDAV 공유 구성을 시작할 수 있습니다.가장 쉬운 방법은 설정을 하지 않고 WebDAV 인터페이스 형태로 JuiceFS 저장소를 직접 여는 것입니다.

sudo juicefs webdav sqlite3://myjfs.db 120.118.8.10:80

내장된 WebDAV 클라이언트 소프트웨어를 사용하여 http://120.118.8.10 에 액세스 하여 연결하고 액세스하십시오.

매우 편리하지만 이 익명 액세스 방식은 보안 위험이 크다는 것을 쉽게 알 수 있습니다.첫째, IP 주소를 아는 사람은 누구나 신원 인증 없이 WebDAV 클라이언트를 통해 직접 우리 파일을 읽고 쓸 수 있습니다.둘째, 암호화되지 않은 HTTP를 사용합니다. 의정서, 커뮤니케이션 과정은 도청되고 공격되기 쉽습니다. 이 두 가지 측면의 결함을 개선하는 것이 매우 필요합니다.사실 매우 간단합니다.첫 번째 문제를 해결하려면 WebDAV에 대한 ID 인증만 설정하면 되고 두 번째 문제를 해결하려면 HTTPS 암호화 연결 지원을 활성화하도록 SSL 인증서를 구성합니다.

인증 설정

JuiceFS v1.1(이 기사가 게시된 현재 이 버전은 공식적으로 출시되지 않았습니다.) 이상 버전은 WebDAV 인증 및 SSL 인증서 기능을 지원하기 시작합니다. 설정하기 전에 클라이언트 버전을 확인하십시오. "수동으로"를 참조하는 것이 좋습니다. JuiceFS 클라이언트 컴파일 " GitHub 리포지토리의 기본 분기를 컴파일합니다.

WebDAV 액세스를 위한 사용자 이름과 암호를 설정하는 것은 해당 환경 변수를 설정하는 것만큼 간단합니다.

export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword

SSL 인증서

WebDAV에 대해 HTTPS 암호화 연결을 활성화하려면 SSL 인증서(CA에서 발급한 신뢰할 수 있는 인증서 또는 OpenSSL에서 발급한 자체 서명된 인증서)가 필요합니다.

일반적으로 CA 기관은 도메인 이름에 대한 인증서만 발급하므로 도메인 이름을 소유하고 서버 IP에 바인딩해야 합니다. 무료 인증서 발급 도구에는 certbot, acme.sh 등이 있습니다. 이러한 도구를 사용하여 무료 SSL 인증서를 신청할 수 있습니다. .

제3자 CA 인증 기관을 통해 인증서를 신청하고 발급하는 것은 또 다른 주제로, 단순화를 위해 자체 서명된 인증서를 사용하여 이 기능을 수행합니다.

  1. 서버 개인 키 생성
openssl genrsa -out private.key 4096
  1. 인증서 서명 요청(CSR) 생성 이 단계에서는 일련의 정보를 대화식으로 제공해야 합니다.
openssl req -new -key private.key -out client.csr
  1. CSR을 사용하여 인증서 발급
openssl x509 -req -days 365 -in client.csr -signkey private.key -out client.crt
  1. 정리 수행
rm client.csr

위의 단계 후에 현재 디렉터리에 private.key와 client.crt라는 두 개의 파일이 있으며 이를 사용하여 WebDAV 서비스를 실행합니다.

WeDAV 정식 서비스 개시

이제 위의 사항을 결합하여 기본 인증 및 HTTPS 암호화 연결로 WebDAV 서비스를 실행할 수 있습니다.

export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword
sudo juicefs webdav --cert-file ./client.crt --key-file ./private.key sqlite3://myjfs.db 120.118.8.10:443

이 시점에서 HTTPS 암호화 연결을 활성화했으며 WebDAV에 액세스할 때 https로 주소를 사용해야 하며 https://120.118.8.10동시에 성공적으로 연결하려면 사용자 이름과 암호를 입력해야 합니다.

또한 여기에서는 자체 서명된 인증서를 사용하기 때문에 일부 클라이언트에서는 액세스 중에 인증서를 신뢰할 수 없다는 경고를 표시할 수 있으므로 무시하십시오.

도메인 이름을 서버에 바인딩하고 SSL 인증서를 신청한 경우 WebDAV 배포 명령을 다음과 같이 조정해야 합니다.

export WEBDAV_USER=user
export WEBDAV_PASSWORD=mypassword
sudo juicefs webdav --cert-file ./your-domain.crt --key-file ./your-domain.key sqlite3://myjfs.db www.your-domain.com:443

이에 따라 액세스 주소도 귀하의 도메인 이름으로 변경해야 합니다(예: https://www.your-domain.com ). CA 기관에서 발급한 인증서를 사용하면 다양한 WebDAV 클라이언트 액세스에서 경고를 발행하지 않으므로 일부 응용 프로그램이 WebDAV 서비스에 연결할 수 없는 문제를 효과적으로 해결할 수 있습니다.

적용 예

ES 파일 브라우저와 Joplin을 예로 들어 자체 구축된 WebDAV 서비스를 구성하고 사용하여 문서 데이터를 동기화하는 방법을 소개합니다.

참고: 일부 응용 프로그램에서 WebDAV를 설정할 때 주소 및 ID 인증 정보가 올바르게 입력된 경우 프로그램에서 여전히 WebDAV에 연결할 수 없다고 보고합니다.프로그램이 자체 서명된 인증서를 지원하지 않기 때문일 수 있습니다.구성할 신뢰할 수 있는 인증서 이 문제를 해결하려면 WebDAV 서비스를 사용하십시오.

ES 파일 브라우저

ES 파일 브라우저는 모바일 단말기에서 일반적으로 사용되는 타사 파일 관리자로, 휴대폰에서 파일을 관리할 수 있을 뿐만 아니라 WebDAV 스토리지를 포함한 많은 타사 스토리지 서비스 추가도 지원합니다.

서비스 메뉴에서 WebDAV 유형의 저장소를 추가하고 아래 그림과 같이 주소, 사용자 이름 및 암호를 입력하면 됩니다.

조플린

Joplin은 WebDAV를 사용하여 문서 동기화를 지원하는 오픈 소스 Markdown 메모 작성 소프트웨어입니다. 동기화 설정에 WebDAV 링크, 사용자 이름 및 암호를 입력하기만 하면 됩니다.

여기서는 자체 서명된 인증서를 사용하고 있으며 Joplin은 동기화 구성을 확인할 때 오류를 보고합니다. 해결 방법은 고급 옵션을 확장하고 "TLS 인증서 오류 무시"를 선택하면 확인을 시도한 후 응용 프로그램 설정이 확인을 통과할 수 있습니다.

마지막에 쓰기

FTP와 마찬가지로 WebDAV는 비교적 오래된 파일 공유 프로토콜이지만 오늘날에도 여전히 널리 사용되고 있습니다. 정보 기술 분야에서 최고의 도구는 없으며 가장 적합한 도구만 있을 뿐입니다. 기능면에서 WebDAV는 전용 네트워크 디스크 클라이언트만큼 기능이 많지 않을 수 있지만 WebDAV 프로토콜은 더 일반적이고 개방적이며 많은 내장 지원 응용 프로그램에서 직접 사용할 수 있습니다. 개인 정보 보호뿐만 아니라 해킹도 방지 특정 플랫폼 번들.

WebDAV는 JuiceFS에서 지원하는 많은 액세스 인터페이스 중 하나일 뿐이며 관심이 있는 경우 로컬 디스크 형식으로 액세스되는 POSIX, S3 API 형식으로 액세스되는 S3 게이트웨이 및 Docker 볼륨과 같은 다른 액세스 인터페이스를 더 자세히 탐색할 수 있습니다. 컨테이너화된 액세스를 위한 플러그인, Kubernetes CSI 드라이버 등 이러한 액세스 방법을 유연하게 사용하면 보다 효율적이고 유연한 클라우드 스토리지 관리 기능을 얻을 수 있습니다.

도움이 되셨다면 저희 프로젝트 Juicedata/JuiceFS 에 주목해주세요 ! (0ᴗ0✿)

{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/5389802/blog/7034331