Docker를 이용하여 1분만에 Nginx Static 파일 서버 만들기

달달칩·2020년 10월 22일
1

가끔씩 필요해서 정리

로컬에 있는 파일들을 http 서버에 올려서 내부네트워크에 존재하는 서버들에 공유하고 싶을때가 있었다. 몇개월에 한번정도..

그럴때마다 우분투에 nginx를 설치하다가 이전에 만들어둔 세팅파일이 날라가서 다시 만들고를 반복하다가 귀찮아서 아예 작업을 해두었다.

Github

Docker 설치

혹시 Docker가 설치되지 않은 상황이라면 https://docs.docker.com/engine/install/ubuntu/ 에서 간단하게 설치 커맨드가 나와있으니 참고하면 좋다.

Nginx 컨테이너 생성

우선 Nginx 컨테이너를 만드려면 설정파일이 필요하다. 다른거 다 필요없고 Directory Indexing이 지원되는 설정으로 제작했다.

wget https://github.com/sweetchipsw/docker-nginx-static-file-server/blob/master/nginx.conf 로 받아주거나

아래 설정을 복붙해서 nginx.conf 로 저장한다.

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    access_log off;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    include /etc/nginx/conf.d/*.conf;
    autoindex on;
}

디렉터리 인덱싱을 원하지 않는다먼 autoindex 를 off로 바꾸거나 지워주자.

이후 다음 커맨드를 적절하게 바꿔서 실행한다.

docker run -v /path/to/nginx.conf:/etc/nginx/nginx.conf -v /path/to/share:/usr/share/nginx/html:ro -p 80:80 -d nginx

/path/to/nginx.conf 설정을 이용하여 nginx 서버를 실행하고 /path/to/share 디렉터리에 존재하는 파일들을 80번 포트로 서빙하는 명령어 이다.

docker run -v /home/sweetchip/nginx.conf:/etc/nginx/nginx.conf -v /home/sweetchip/static:/usr/share/nginx/html:ro -p 80:80 -d nginx
위는 실행 예제이다.

그후 curl http://localhost/ 로 웹서버가 동작하는지 확인한다.

동작하면 성공~

profile
보안과 개발을 둘다 잘 하고 싶은 사람입니다.

0개의 댓글