라즈베리파이에 넣어둔 영화 파일을 외부에서 폰으로 보고 싶다면 잘 따라하시면 됩니다.
참고로 저도 이 방법으로 폰으로 영화를 보고 있는데 속도가 sftp 보다 webdav 가 더 속도도 빠르고 좋은 것 같아서 webdav 방식을 이용한 연결 방법으로 택했습니다.
참고로 이 게시물은 webdav HTTPS 편 이므로 SSL인증서가 준비가 먼저 되 있으셔야 합니다.
인증서 없이 구현을 원하시는 분들은 아래 링크인 webdav HTTP 로의 구성 편으로 이동해 주세요.
라즈베리파이 webdav 연결하여 나만의 영화 서버 구축(HTTP 편)
라즈베리파이에 넣어둔 영화 파일을 외부에서 폰으로 보고 싶다면 잘 따라하시면 됩니다. 참고로 저도 이 방법으로 폰으로 영화를 보고 있는데 속도가 sftp 보다 webdav 가 더 속도도 빠르고 좋은
lance.tistory.com
그럼 시작하겠습니다.
먼저 아파치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 구축 후 휴대폰으로 감상하기
지난번 라즈베리파이에 webdav 로 나만의 영화 서버 구축하는 방법에 이어 이제 어디서나 휴대폰으로 내 라즈베리파이 서버에 연결해서 영화를 감상하기 위한 방법 입니다. 이번 글은 ios, Android
lance.tistory.com
'리눅스' 카테고리의 다른 글
라즈베리파이 webdav 구축 후 휴대폰으로 감상하기 (0) | 2021.01.20 |
---|---|
라즈베리파이 webdav 연결하여 나만의 영화 서버 구축(HTTP 편) (4) | 2021.01.20 |
라즈베리파이에 DDNS 부여해서 고유 도메인 주소 주는 방법 (1) | 2021.01.19 |
리눅스 CLI 에서 screen 사용하면 작업 또는 프로세스 돌리고 창 닫아도 된다 (0) | 2021.01.18 |
라즈베리파이에 쿠버네티스 설치 후 CPU 온도, 메모리 사용량, 디스크 사용량, 파드(Pod) 및 주요 서비스 상태 출력 하기 (0) | 2021.01.18 |