라즈베리파이에 넣어둔 영화 파일을 외부에서 폰으로 보고 싶다면 잘 따라하시면 됩니다.
참고로 저도 이 방법으로 폰으로 영화를 보고 있는데 속도가 sftp 보다 webdav 가 더 속도도 빠르고 좋은 것 같아서 webdav 방식을 이용한 연결 방법으로 택했습니다.
참고로 이 게시물은 webdav HTTPS 편 이므로 SSL인증서가 준비가 먼저 되 있으셔야 합니다.
인증서 없이 구현을 원하시는 분들은 아래 링크인 webdav HTTP 로의 구성 편으로 이동해 주세요.
그럼 시작하겠습니다.
먼저 아파치2를 설치해 줍니다.
sudo apt-get update
sudo apt-get install apache2
update 를 한번 하고 apache2 를 설치 합니다.
sudo a2enmod dav
sudo a2enmod dav_fs
그 후 위와 같이 webdav 사용을 위한 dav, dav_fs 모듈을 켜 줍니다.
이제 기능은 다 준비 되었습니다.
라즈베리파이 서버의 영화를 담을 폴더를 하나 만들어 줍시다.
(저는 외장하드 안에 담았기 때문에 아래와 같은 예시로 하겠습니다)
mkdir -p /mnt/exHDD/movies
영화 파일은 이 폴더 안에 잔뜩 담아 주시면 됩니다.
그리고 이제 심볼릭 링크를 하나 만들겠습니다.
sudo ln -s /mnt/exHDD/movies/ /webdav
위와 같이 /webdav 의 경로로 심볼릭 링크를 주고 나중에 apache webdav 설정을 /webdav 경로로 주게 되면 알아서 심볼릭 링크를 타고 /mnt/exHDD/movies 안으로 찾아 들어 갑니다.
원래는 /mnt/exHDD/movies 폴더의 소유권을 www-data:www-data 로 바꿔서 apache 설정 상에 직접 경로를 줘도 되지만 심볼릭 링크로 주는게 나중에 관리하기 더 편해서 이 방식으로 택했습니다.
그럼 계속 이어서,
이제 webdav 계정을 만들겠습니다.
sudo htpasswd -c /etc/apache2/webdav.passwd username
위 명령어로 끝에 username 대신 원하는 아이디를 넣으시면 됩니다.
명령어를 수행하면 계정에 대한 비밀번호를 입력하라고 나오게 되고 비밀번호까지 입력을 잘 하시면 계정이 만들어 집니다.
해당 /etc/apache2/webdav.passwd 파일을 cat 으로 열어보시면 계정이 만들어졌고 비밀번호가 암호화되어 있는 걸 볼 수 있습니다.
추가적으로 2번째 계정을 만들고 싶다면,
sudo htpasswd /etc/apache2/webdav.passwd username
위와 같이 -c 옵션을 빼고 명령어를 수행하면 /etc/apache2/webdav.passwd 파일 상에 누적으로 계정들이 만들어 집니다.
sudo chown root:www-data /etc/apache2/webdav.passwd
sudo chmod 640 /etc/apache2/webdav.passwd
이제 두 명령어로 webdav.passwd 파일의 소유권 및 권한을 위와 같이 바꿔 줍니다.
이제 apache2 설정 입니다.
cd /etc/apache2
여기로 이동 합니다.
먼저 /etc/apache2/ports.conf 파일을 열어 줍니다.
vi /etc/apache2/ports.conf
vi 편집기로 열어서
ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
<IfModule ssl_module>
Listen 55000
</IfModule>
<IfModule mod_gnutls.c>
Listen 55000
</IfModule>
위와 같이 Listen 55000 을 넣어줍니다.
(저는 포트를 55000 번을 사용할 것이기 때문에 위와 같이 입력했으며 다른 원하는 포트 넘버로 입력해 주셔도 됩니다. 하지만 기본 80이나 443 은 공격 시도가 많이 들어오기 때문에 되도록 저처럼 10000번대 이후 포트로 바꾸는걸 권장 합니다)
그리고 저장하고 나옵니다.
이제 아파치 파일로 갑니다.
cd /etc/apache2/sites-available/
여기서 default-ssl.conf 를 vi 편집기로 열어 주시면 됩니다.
default-ssl.conf
<VirtualHost *:55000>
### Webdav with HTTPS###
ServerAdmin webmaster@localhost
DocumentRoot /webdav
<Directory /webdav>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Alias /webdav /webdav
<Location /webdav>
DAV On
AuthType Basic
AuthUserFile /etc/apache2/webdav.passwd
Require valid-user
</Location>
ErrorLog ${APACHE_LOG_DIR}/webdav_https_error.log
CustomLog ${APACHE_LOG_DIR}/webdav_https_access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mydomain.duckdns.org/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.duckdns.org/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mydomain.duckdns.org/fullchain.pem
</VirtualHost>
https 용은 SSL 인증서가 함께 포함이 되어야 하기 때문에,
먼저 인증서 발급이 되어 있으셔야 합니다.
(무료 SSL인증서는 letsencrypt 라는 단체에서 90일씩 무료 제공을 하고 있으니 참고하시면 되겠습니다)
default-ssl.conf 을 보시면 맨 하단에 SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile 부분에
본인이 가지고 있는 SSL 인증서의 경로를 잡아 주시면 됩니다.
(위 경로는 예시경로이며, 대개 letsencrypt 로 certbot 을 통해 SSL인증서를 받으면 /etc/letsencrypt/live/ 안에 있으며 그 뒤 경로는 본인 도메인주소명으로 된 폴더, 그 안에 키 파일들이 위 경로와 같이 있습니다)
이제 다 되었습니다.
마지막으로,
sudo a2ensite default-ssl.conf
sudo a2enmod ssl
ssl 모듈 활성화를 위해 두 명령어를 먹여 줍니다.
이제,
systemctl restart apache2
위 명령어로 apache2 재기동을 한번 해주면 서비스가 시작 됩니다.
https://내도메인주소또는IP:55000/webdav
크롬이나 인터넷 브라우저에서 위 경로로 접속을 해 보시면 아이디와 패스워드를 치는 창이 나올 겁니다.
거기에서 webdav 용으로 만든 계정 및 비번을 입력하면 /mnt/exHDD/movies 안에 있는 파일 리스트들이 나오게 됩니다.
성공!
추가적으로 휴대폰에서 접속해서 보는 방법은 아래 링크로 이어가 주세요!
'리눅스' 카테고리의 다른 글
라즈베리파이 webdav 구축 후 휴대폰으로 감상하기 (0) | 2021.01.20 |
---|---|
라즈베리파이 webdav 연결하여 나만의 영화 서버 구축(HTTP 편) (4) | 2021.01.20 |
라즈베리파이에 DDNS 부여해서 고유 도메인 주소 주는 방법 (0) | 2021.01.19 |
리눅스 CLI 에서 screen 사용하면 작업 또는 프로세스 돌리고 창 닫아도 된다 (0) | 2021.01.18 |
라즈베리파이에 쿠버네티스 설치 후 CPU 온도, 메모리 사용량, 디스크 사용량, 파드(Pod) 및 주요 서비스 상태 출력 하기 (0) | 2021.01.18 |