NGINX 디렉토리 리스팅 설정으로 파일 공유하기

NGINX는 아파치나 lighthttpd와 마찬가지로 가상 호스트 설정 항목인 server{ } 블럭에서 root로 설정한 디렉토리 내의 파일을 리스팅(Listing)해 파일을 다운로드 할 수 있는 디렉토리 리스팅 기능을 제공하고 있습니다.

디렉토리 리스팅 기능은 CentOS 리눅스 배포판 아카이브 페이지 같은 단순히 파일을 제공하는 용도일때 별도의 HTML 파일 없이 간편하게 구성할때 사용합니다.

NGINX Directory Listing 설정

user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
   worker_connections 4096;
   multi_accept on;
}
http {
   include /etc/nginx/mime.types;
   default_type application/octet-stream;
   server {
      listen 80;
      server_name localhost;
      root /var/www/html;

      location /files/ {
         root /var/www/html/files;
         autoindex on;
      }
   }
}

디렉토리 리스팅을 설정하는 방법은 위와 같은 설정 처럼 11~18번째 줄의 server 블럭의 files 디렉토리의 로케이션을 별도로 설정하고 root 디렉토리를 설정 후 autoindex on; 구문을 넣어주면 끝입니다.

server {
   listen 80;
   server_name localhost;
   root /var/www/html;

   location / {
      root /var/www/html/files/;
      autoindex on;
   }
}

만일 루트 디렉토리 부터 리스팅 페이지를 만들고 싶다면 위처럼 가상 호스트의 root 디렉토리를 지정 후 location 블럭의 최상단에 root 디렉토리를 다시 지정한 다음 autoindex on; 설정을 하면 됩니다.

만일 server 블럭에 autoindex 설정을 할 경우 nginx 재시작시 오류는 없지만 디렉토리 리스팅이 되지 않습니다.

NGINX 설정 후 브라우저에서 접속하면 위처럼 설정한 디렉토리 하위를 파일 리스트 구조로 확인할 수 있습니다.

추천 글

댓글

이메일 주소는 공개되지 않으며 댓글에 하나 이상의 URL이 포함될 경우 관리자 승인 후 공개됩니다.

댓글은 운영 정책에 따라 관리됩니다. (링크)