[AWS] 정적 파일 서빙 실습

Hyunjun Kim·2025년 5월 20일

실습 - (AWS 환경)

목록 보기
15/61

root 파일 디렉토리 설정

/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.)으로 접근하면 영상 자체가 재생되지 않고 그냥 바이너리 데이터로 내려받는다.

profile
Data Analytics Engineer 가 되

0개의 댓글