7) WebDAV 구축

jungi.seong·2024년 4월 23일
0

1) 구축 사유

Media서버를 운용 시, 파일관리를 위해서 어떤방식이 있을까 검색하던 중 여러가지 서비스들을 찾을 수 있었습니다.

적합하다고 생각한 후보 서비스들은 아래와 같이 정리 했습니다.

공통 사항 : 네트워크를 통해 파일을 공유하고 접근할 수 있게 해주는 프로토콜

NFS(Network File System)

  • 유닉스 및 유닉스 계열 운영 체제에서 주로 사용되는 파일 공유 프로토콜
  • 원격 파일 시스템을 로컬 디스크처럼 마운트하여 사용
  • 성능이 우수하고 투명성이 높음
  • 주로 Linux, Unix 서버 환경에서 활용

SMB(System Management Bus)

  • Microsoft 윈도우 운영 체제에서 주로 사용되는 파일 및 프린터 공유 프로토콜
  • 네트워크 상의 리소스를 공유하고 액세스하는 데 사용
  • 윈도우 클라이언트와 상호 운용성이 뛰어남
  • 주로 Windows 서버/클라이언트 환경에서 사용

WebDAV(Web Distributed Authoring and Versioning) : 웹 분산 저작 및 버전 관리

  • https를 통해 안전한 파일 공유환경을 제공
  • 웹상에서 손쉽게 파일에 접근을 할 수 있음
  • 내/외부 사용 시 원할한 서비스 제공
  • 여러 플랫폼에서 손쉬운 연결이 가능함

출처 : claud ai

왜? WebDAV인가?

  • 암호화 전송을 위해서 http대신 https를 선택해서 사용 가능
  • 여러 다양한 플랫폼에서 사용이 가능
  • 외부 및 내부에서 사용이 원할해야 함

위 장점들도 있었지만 선택에 가장 주요하게 작용한 건 검색 시, 사람들이 이 방식을 가장 많이 사용했습니다.

많이 쓰는걸 사용해야 나중에 문제가 생겨도 해결법을 찾기 쉬울 것 같다고 생각했습니다.


2) 구축 순서

2-1) nginx 설치

서버에 nginx를 설치 합니다.

2-2) nginx에 webdav 설정 추가

nginx서버 설정에 webdav 관련 내용을 추가 합니다.

2-3) 심볼릭링크 생성

설정파일 심볼릭 링크를 생성 합니다.

2-4) 사용자 추가

htpasswd를 이용하여 사용자 및 비밀번호를 추가 합니다.

2-5) 테스트

구축 후, 접속 및 기능 테스트를 진행합니다.


3) 구축

(해당 예시는 Ubuntu 23.10 환경에서 진행되었습니다.)

3-1) nginx 설치

아래의 명령어로 nginx를 설치 해줍니다.

apt -y install nginx-full

3-2) nginx에 WebDAV설정을 추가

/etc/nginx/site-available 폴더에 default파일이나 원하는 파일을 생성하여 Server block(server {})의 location위치에 아래 내용을 추가 해 줍니다.

location /webdav {
charset utf-8; # 한글지원을 위해서 추가
autoindex on; # 자동 인덱스 활성화: 디렉터리 내 파일 목록 표시
alias /var/dav; # 요청된 URI를 /var/dav 디렉터리로 매핑
auth_basic "Restricted Access"; # 기본 인증 사용: "Restricted Access" 메시지 표시
auth_basic_user_file /etc/nginx/.htpasswd; # 인증 정보 파일 위치 지정
client_body_temp_path /var/dav/temp; # 클라이언트 요청 바디의 임시 저장 경로 지정
dav_methods PUT DELETE MKCOL COPY MOVE; # WebDAV 메서드 설정: 파일 및 디렉터리 관리용 메서드 지정
dav_ext_methods PROPFIND OPTIONS; # WebDAV 확장 메서드 설정: 프로퍼티 조회 및 옵션 메서드 허용
dav_access user:rw group:rw all:r; # WebDAV 접근 권한 설정
}

location /webdav {
charset utf-8;
autoindex on;
alias /var/dav;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
client_body_temp_path /var/dav/temp;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
dav_access user:rw group:rw all:r;
}

3-3) 심볼릭 링크 생성

availbe폴더의 생성된 파일을 사용해서 enabled 폴더에 심볼릭 링크를 생성합니다.

sudo ln -s [avalible의 전체경로/파일이름][enabled의 전체경로/파일이름]

default 파일은 이미 링크 처리가 되어있다.

3-4) 사용자 추가

아래 명령어를 이용해서 사용자를 추가 합니다.

sudo htpasswd -c /etc/nginx/.htpasswd 사용자명

  • 아래와 같은 메세지가 나올수 있는데 apache2-util을 설치한 후 다시 진행했습니다.

입력하면 아래 화면과 같이 password를 입력하라고 나오게 됩니다.

사용할 패스워드를 2번 입력해서 설정해 줍니다.


4) 테스트

아래 명령어를 이용하여 설정파일에 문제가 없는지 테스트를 진행합니다.

sudo nginx -t

이상이 없다면 아래 명령어를 통해 서버를 재 시작 합니다.

sudo systemctl restart nginx

ip주소를 이용하여 webdav에 접속해 보았으며, 정상적인 접속을 확인 했습니다. (접속 시, 이전에 생성했던 id와 password입력)

192.0.0.1/webdav


https 적용은 추 후 기재해 놓겠습니다.

감사합니다.

profile
hello world~!

0개의 댓글