NGINX WebDAV 설정 방법

NGINX

WebDAV(Web Distributed Authoring and Versioning)는 http를 이용해 웹서버에 저장되어 있는 파일을 여러 사용자가 편집하기 위해 고안된 프로토콜입니다.

실제로는 FTP 대용으로 많이 사용되고 있으며 운영체제에서 별도의 프로그램 없이도 WebDAV를 사용할 수 있기 때문에 시놀로지등의 NAS에서도 많이 활용하는 기능중 하나입니다.

NGINX 역시 WebDAV를 지원하며 다음과 같이 설정할 수 있습니다.

설정 환경 : 우분투 16.04 LTS

설정 전 준비

root@TUTORIAL:/# dpkg -l | grep nginx
ii nginx-common 1.10.3-0ubuntu0.16.04.2 all small, powerful, scalable web/proxy server - common files
ii nginx-full 1.10.3-0ubuntu0.16.04.2 amd64 nginx web/proxy server (standard version)
root@TUTORIAL:/#

WebDAV 설정에 앞서 설치한 NGINX 패키지의 종류를 확인해야 합니다.

NGINX는 core, common, light, full, extras 패치지로 나뉘는데 WebDAV를 사용하기 위해서는 full 또는 extras 패키지가 설치되어 있어야 합니다.

dpkg -l | grep nginx 명령어로 NGINX의 어떤 패키지가 설치되어 있는지 확인할 수 있습니다.

만일 NGINX를 컴파일로 설치했다면 위 모듈을 추가해 재컴파일 후 설치해야 합니다.

apt-get install openssl

그리고 WebDAV로 접속할 사용자 비밀번호의 암호화를 위해서 openssl 패키지가 필요합니다. 만일 설치되어 있지 않다면 위 명령어를 통해 openssl을 설치합니다.

사용자 디렉토리 설정

WebDAV를 이용해 공유할 디렉토리를 설정합니다. 디렉토리 위치는 어디든 상관없지만 www-data 유저 및 그룹에 대한 사용 권한을 가지고 있어야 합니다.

root@TUTORIAL:/home/pg# mkdir webdav
root@TUTORIAL:/home/pg# chown www-data:www-data webdav/
root@TUTORIAL:/home/pg# ll
total 32
drwxr-xr-x 4 pg       pg       4096 Apr 14 20:35 ./
drwxr-xr-x 3 root     root     4096 Dec 29 21:12 ../
-rw------- 1 pg       pg        155 Feb  4 12:19 .bash_history
-rw-r--r-- 1 pg       pg        220 Dec 29 21:12 .bash_logout
-rw-r--r-- 1 pg       pg       3771 Dec 29 21:12 .bashrc
drwx------ 2 pg       pg       4096 Dec 29 21:15 .cache/
-rw-r--r-- 1 pg       pg        655 Dec 29 21:12 .profile
-rw-r--r-- 1 pg       pg          0 Dec 29 21:16 .sudo_as_admin_successful
drwxr-xr-x 2 www-data www-data 4096 Apr 12 20:35 webdav/

예로 리눅스 사용자 기본 폴더인 /home/리눅스계정 하위에 webdav 디렉토리를 mkdir로 생성한 다음 chown 명령어로 www-data 사용자 및 그룹에 대한 권한을 설정합니다.

WebDAV 사용자 접근 권한 설정

echo "계정이름:$(openssl passwd -crypt 비밀번호)" >> /etc/nginx/.passwd.list

WebDAV 디렉토리에 접근 가능한 계정과 비밀번호를 설정합니다.

리눅스 계정과는 별개로 작동하며 위 명령어로 openssl을 통해 사용자 비밀번호를 암호화 할 수 있습니다.

지정한 계정과 암호 정보는 /etc/nginx 디렉토리에 .htpasswd 이름으로 저장됩니다.

NGINX WebDAV 설정

location /webdav {
        charset utf-8;
        alias /home/pg/webdav;
        autoindex on;
        auth_basic "WebDAV Page";
        auth_basic_user_file /etc/nginx/.passwd.list;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        dav_access user:rw group:rw;
        client_max_body_size 0;
        create_full_put_path on;
}

이제 NGINX를 WebDAV 프로토콜로 사용할 수 있게 설정합니다. sites-available/default 설정 파일의 server { } 블럭 안에 위 location 설정 코드를 추가합니다.

수정을 완료한 다음 service nginx reload 명령어로 NGINX를 재시작 합니다.

WebDAV 접속

RaiDrive를 이용해 NGINX WebDAV에 접속

http://IP주소/webdav넷드라이브레이드라이브를 통해 네트워크 드라이브로 연결한 다음 파일을 업로드하거나 다운로드할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
유효한 이메일 주소를 입력해주세요.