/etc/nginx/conf.d 에서
sudo vi static.conf
server {
server_name staticserver;
listen 8082;
root /www/data;
location / {
}
location /images/ {
}
location ~ \.(mp3|mp4) {
root /www/media;
}
}
listen 8082 : 실습별로 포트 안 겹치게 하려고 임의 포트 지정. 비어있는 거 쓰면 됨.
root : 이 server 블록 안에서 기본으로 볼 디렉토리 루트 패스를 의미
어떤 파일의 경로가 왔을 때 www/data 부터 똑같은 파일 이름으로 찾는다
location root는 data에서 찾고
/imgaes/ : API로 path로 /images 라는 경로가 오면 data/images/폴더에서 찾는다.
regular expression 사용한 건데 원하는 대로 사용하면 된다.
API path에
~ : 케이스 센세티브 하다는 것
확장자가 .(mp3|mp4) 인 경로가 URI에 있으면 그건 Root를 www/data 가 아니라
www/media 에서 찾겠다는 설정.
디렉토리를 만든다.

sudo mkdir /www
sudo mkdir /www/data
sudo mkdir /www/data/images
sudo mkdir /www/media
sudo apt install tree

$ tree /www
www
├── data
│ └── images
└── media
파일을 다운로드 받는다.

sudo curl -o /www/data/notebook.jpg https://images.unsplash.com/photo-1664575196412-ed801e8333a1
sudo curl -o /www/data/apple.jpg https://images.unsplash.com/photo-1570913149827-d2ac84ab3f9a
sudo curl -o /www/data/images/load.jpg https://images.unsplash.com/photo-1580637261961-2ee5a4d3537d
sudo curl -o /www/media/earth.mp4 https://file-examples.com/storage/fe19e1a6e563854389e633c/2017/04/file_example_MP4_480_1_5MG.mp4

파일까지 잘 위치시켰으면 nginx 설정을 적용해보자.

nginx 띄워놓은 서버의 주소랑 8082로 nginx설정이 있으니까 8082 이렇게 해서 해보자.
그러면 403 Forbidden이 나올 것이다.

이 상태에서 apple.jpg 를 붙인
http://13.125.12.34:8082/apple.jpg 를 입력해보자.

왜이럴까?
static.conf 에 보면 root에 있는 경로에서 찾는데 www/data 경로에서 apple.jpg를 찾은 것이다.
images 디렉토리에 load.jpg가 있다.

not found.


mp4 하면 실제 mp4 파일이 나와서 mp4 파일을 크롬 브라우저가 해석할 수 있으니까 이렇게 나오는 것이다. 커맨드라인(curl, wget, etc.)으로 접근하면 영상 자체가 재생되지 않고 그냥 바이너리 데이터로 내려받는다.