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

2 Comments

  1. Avatar

    여기 서버 엄청 빠르네요!

    1. 아마존 라이트세일 서울리전 $5 인가요?

    2. 최적화 플러그인은 어떤 것을 사용하나요?

    3. 이미지는 CDN 서비스 이용 중이신가요? 혹시 어디 CDN 사용하시나요? 따로 CDN 사용 방법에 대한 내용도 알 수 있을까요?

Write A Comment