기술 가이드

lighttpd에서 WebDAV용 가상 호스트 구성

3 min read 서버 업데이트됨 21 Sep 2025
lighttpd에서 WebDAV용 가상 호스트 설정
lighttpd에서 WebDAV용 가상 호스트 설정

개요

이 문서는 /var/www/web1 경로를 WebDAV 공유로 노출하기 위해 lighttpd의 가상 호스트를 구성하는 방법을 설명합니다. 주요 작업은 다음과 같습니다: WebDAV 사용자 인증 파일 생성, 파일 권한 설정, vhost 설정 변경, lighttpd 재시작, 클라이언트 연결 테스트.

Important: 아래 명령은 루트 권한으로 실행해야 합니다.

4 WebDAV를 위한 가상 호스트 구성

먼저 WebDAV 인증에 사용할 비밀번호 파일을 생성합니다. 사용자 test를 추가할 때 -c 스위치를 사용하면 파일이 없을 때 새로 생성됩니다:

htpasswd -c /var/www/web1/passwd.dav test

명령 실행 후 test 사용자의 비밀번호를 묻는 프롬프트가 표시됩니다. 기존 passwd.dav 파일이 이미 있다면 -c 스위치를 사용하지 마십시오. -c는 파일을 처음부터 다시 생성하므로 기존 사용자 목록이 모두 사라집니다.

Important: 파일을 덮어쓰지 않도록 -c 사용 여부를 확인하세요.

다음으로 /var/www/web1/passwd.dav 파일의 소유권과 권한을 변경해 루트와 lighttpd 그룹 구성원만 접근할 수 있게 합니다:

chown root:lighttpd /var/www/web1/passwd.dav  
chmod 640 /var/www/web1/passwd.dav

그런 다음 vhost 설정을 편집합니다:

vi /etc/lighttpd/lighttpd.conf

아래와 같이 vhost 블록을 추가하거나 수정합니다:

| [...] $HTTP["host"] == "www.example.com" { server.document-root = "/var/www/web1/web" alias.url = ( "/webdav" => "/var/www/web1/web" ) $HTTP["url"] =~ "^/webdav($|/)" { dir-listing.activate = "enable" webdav.activate = "enable" webdav.is-readonly = "disable" auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav" auth.require = ( "" => ( "method" => "basic", "realm" => "webdav", "require" => "valid-user" ) ) } } |

alias.url 지시어와 $HTTP[“url”] 정규식은 /webdav 경로로 접근할 때만 WebDAV 기능을 활성화합니다. vhost의 다른 URL은 기존의 일반 HTTP로 동작합니다.

vhost 변경 후 lighttpd를 재시작합니다:

/etc/init.d/lighttpd restart

Note: 시스템에 따라 서비스 재시작 명령이 다를 수 있습니다(systemd 사용 시 systemctl restart lighttpd).

5 WebDAV 테스트

명령줄 WebDAV 클라이언트인 cadaver를 설치합니다 (예: Fedora/Red Hat 계열):

yum install cadaver

WebDAV 동작 테스트:

cadaver http://www.example.com/webdav/

프로그램이 사용자 이름을 물으면 test와 비밀번호를 입력합니다. 접근 허가가 되면 WebDAV 셸 접속이 허용됩니다. 종료하려면 quit를 입력합니다:

[root@server1 ~]# cadaver http://www.example.com/webdav/  
Authentication required for webdav on server `www.example.com':  
Username: test  
Password:  
dav:/webdav/> quit  
Connection to `www.example.com' closed.  
[root@server1 ~]#

성공하면 위와 같은 흐름을 확인할 수 있습니다.

6 Windows XP에서 WebDAV 공유 연결

자세한 설명은 원문 가이드를 참고하세요. WebDAV URL에 포트를 명시하면 Windows XP가 일반 사용자 이름(예: test)을 올바르게 처리하는 경우가 많습니다. 예를 들어:

http://www.example.com:80/webdav

일부 환경에서는 포트를 명시하지 않으면 Windows XP가 NTLM 형식의 사용자명(예: www.example.com\test)을 요구할 수 있습니다. 포트 포함 URL을 시도해 보세요.

7 GNOME(리눅스)에서 WebDAV 연결

GNOME(파일 관리자)을 이용한 연결 방법도 별도의 가이드에서 설명되어 있습니다. 일반적으로 ‘서버에 연결’에서 WebDAV URL을 입력하고 인증 정보를 제공하면 마운트됩니다.

8 참고 링크


추가: 문제 해결 체크리스트

  • 인증 실패(401)
    • /var/www/web1/passwd.dav 파일이 올바른 위치인지 확인
    • 파일 소유권과 권한이 root:lighttpd, 640인지 확인
    • lighttpd가 읽기 권한을 가진 그룹으로 실행 중인지 확인
  • 접근 권한 문제
    • vhost의 server.document-root와 alias.url 경로가 정확한지 확인
    • selinux가 활성화된 경우(예: Enforcing) 관련 컨텍스트를 허용하도록 설정하거나 점검
  • 디렉터리 목록이나 업로드 불가
    • webdav.is-readonly 설정이 “disable”로 되어 있는지 확인
    • 웹서버 로그(/var/log/lighttpd/)에서 관련 에러 확인

역할별 체크리스트

  • 시스템 관리자
    • passwd.dav 생성과 권한 설정 수행
    • lighttpd vhost 구성 및 재시작
    • 방화벽/SELinux 설정 검토
  • Windows 사용자
    • 포트 포함 URL로 연결 시도
    • 필요 시 자격증명 관리자에서 서버 자격증명 제거 후 재시도
  • 리눅스(GNOME) 사용자
    • 파일 관리자에서 ‘서버에 연결’을 통해 URL 입력
    • 명령줄에서는 cadaver로 연결 테스트

간단한 절차 요약

  1. htpasswd로 비밀번호 파일 생성(이미 있으면 -c 사용 금지)
  2. chown/chmod로 파일 권한 설정
  3. lighttpd.conf에서 vhost 및 /webdav 블록 추가
  4. 서비스 재시작
  5. cadaver 등으로 접속 테스트

짧은 용어 정리

  • WebDAV: HTTP 기반의 원격 웹 파일 관리 확장
  • htpasswd: Apache 계열에서 사용하는 사용자 비밀번호 파일 생성 도구
  • cadaver: 명령줄 WebDAV 클라이언트
  • lighttpd: 경량 웹 서버

Notes: 이 가이드는 보안 설정의 기본을 다루며, 운영 환경에서는 TLS(HTTPS) 사용과 더 강력한 인증/권한 정책 적용을 권장합니다.

요약

  • /var/www/web1/passwd.dav를 htpasswd로 생성하고 권한을 적절히 설정하세요.
  • vhost에서 alias.url 및 WebDAV 블록을 추가해 /webdav 경로에 대해 WebDAV를 활성화하세요.
  • cadaver로 동작을 확인하고, Windows XP 연결 시 포트를 명시해 보세요.
공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기