Media서버를 운용 시, 파일관리를 위해서 어떤방식이 있을까 검색하던 중 여러가지 서비스들을 찾을 수 있었습니다.
적합하다고 생각한 후보 서비스들은 아래와 같이 정리 했습니다.
출처 : claud ai
위 장점들도 있었지만 선택에 가장 주요하게 작용한 건 검색 시, 사람들이 이 방식을 가장 많이 사용했습니다.
많이 쓰는걸 사용해야 나중에 문제가 생겨도 해결법을 찾기 쉬울 것 같다고 생각했습니다.
서버에 nginx를 설치 합니다.
nginx서버 설정에 webdav 관련 내용을 추가 합니다.
설정파일 심볼릭 링크를 생성 합니다.
htpasswd를 이용하여 사용자 및 비밀번호를 추가 합니다.
구축 후, 접속 및 기능 테스트를 진행합니다.
(해당 예시는 Ubuntu 23.10 환경에서 진행되었습니다.)
아래의 명령어로 nginx를 설치 해줍니다.
apt -y install nginx-full

/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;
}

availbe폴더의 생성된 파일을 사용해서 enabled 폴더에 심볼릭 링크를 생성합니다.
sudo ln -s [avalible의 전체경로/파일이름][enabled의 전체경로/파일이름]

default 파일은 이미 링크 처리가 되어있다.
아래 명령어를 이용해서 사용자를 추가 합니다.
sudo htpasswd -c /etc/nginx/.htpasswd 사용자명

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

사용할 패스워드를 2번 입력해서 설정해 줍니다.
아래 명령어를 이용하여 설정파일에 문제가 없는지 테스트를 진행합니다.
sudo nginx -t

이상이 없다면 아래 명령어를 통해 서버를 재 시작 합니다.
sudo systemctl restart nginx
ip주소를 이용하여 webdav에 접속해 보았으며, 정상적인 접속을 확인 했습니다. (접속 시, 이전에 생성했던 id와 password입력)
192.0.0.1/webdav

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