ngx_http_dav_module

ngx_http_dav_module 모듈은 WebDAV 프로토콜을 통해 파일 관리를 자동화하는 데 사용합니다. 이 모듈은 HTTP와 WebDAV의 메서드인 PUT, DELETE, MKCOL, COPY, MOVE를 처리합니다.

이 모듈은 기본적으로 구축되지 않으므로, –with-http_dav_module 구성 매개변수로 활성화해야 합니다.

추가적인 WebDAV 메서드가 있어야 작동하는 WebDAV 클라이언트는 이 모듈을 사용할 수 없습니다.

예제 구성

location / {
    root                  /data/www;

    client_body_temp_path /data/client_temp;

    dav_methods PUT DELETE MKCOL COPY MOVE;

    create_full_put_path  on;
    dav_access            group:rw  all:r;
    
    limit_except GET {
        allow 192.168.1.0/32;
        deny  all;
    }
}

Directives

Syntax:  create_full_put_path on | off;
Default: create_full_put_path off;
Context: http, server, location

WebDAV 사양은 기존 디렉터리에만 파일을 생성할 수 있습니다. 이 디렉터리에서는 모든 필수적인 중간 디렉터리를 생성할 수 있습니다.

Syntax:  dav_access users:permissions ...;
Default: dav_access user:rw;
Context: http, server, location

예를 들어, 다음과 같이 새로 생성된 파일과 디렉터리에 대한 액세스 권한을 설정합니다.

dav_access user:rw group:rw all:r;

group 또는 all 액세스 권한을 지정할 경우, user 권한을 생략할 수 있습니다.

dav_access group:rw all:r;
Syntax:  dav_methods off | method ...;
Default: dav_methods off;
Context: http, server, location

지정된 HTTP 및 WebDAV 메서드를 허용합니다. 매개변수 off는 이 모듈에서 처리하는 모든 메서드를 거부합니다. 지원되는 메서드는 다음과 같습니다. PUT, DELETE, MKCOL, COPY 및 MOVE.

PUT 메서드로 업로드된 파일은 먼저 임시 파일에 작성된 다음, 파일 이름이 변경됩니다. 0.8.9버전에서부터 임시 파일 및 영구 저장소를 다른 파일 시스템에 넣을 수 있게 되었습니다. 그러나 이 경우, 간단하게 이름 변경 작업으로 처리하는 대신 파일을 두 개의 파일 시스템에 복사합니다. 따라서 특정 위치에서 client_body_temp_path 명령에 따라 저장된 파일과 임시 파일을 저장한 디렉터리가 있을 경우, 이들을 동일한 파일 시스템에 넣어야 합니다.

PUT 메서드로 파일을 생성하면 “Date” 헤더 필드에 전달하여 수정 날짜를 지정할 수 있습니다.

Syntax:  min_delete_depth number;
Default: min_delete_depth 0;
Context: http, server, location

DELETE 메서드가 파일을 제거하도록 허용합니다. 단, 요청 경로에서 요소 개수가 지정된 개수 이상이어야 합니다. 예를 들어, 이 명령은

min_delete_depth 4;

요청에서 파일을 제거하고

/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html

제거를 거부합니다.

/users/00/00