Nginx 파일 리스트 출력하기
Nginx 웹 서버를 사용할 때 특정 디렉토리의 인덱스 파일을 현재 디렉토리 및 하위 디렉토리의 파일 리스트로 출력하고 싶을 때가 있습니다.
일반적으로 Httpd 웹 서버를 사용할 때 인덱스 페이지를 디렉토리 목록으로 나타내는 방법과 같은 결과를 보입니다.
아래 사진은 파일 리스트를 출력한 결과의 예시입니다.
적용 방법
위와 같이 디렉토리 파일 리스트를 보여주고 싶을 때는 Nginx 설정 파일을 수정해주어야 합니다.
먼저 root 권한으로 터미널 텍스트 에디터를 사용하여 Nginx 설정 파일인 /etc/nginx/nginx.conf
파일(서버 환경에 따라 경로가 다를 수 있음)을 수정해보겠습니다.
[root@localhost ~]# vim /etc/nginx/nginx.conf
설정된 파일을 보시면 http
블록 내에 server
블록이 있을 것입니다. 여기에 location
블록을 만들어야 합니다.
location
블록에서 설정할 경로는 모든 디렉토리를 뜻하는 /
를 입력합니다. 결과적으로 다음과 같습니다.
... server { ... location / { } ... } ...
디렉토리 파일 리스트 옵션은 다음과 같이 설정해주어야 합니다.
autoindex on;
결과적으로 다음과 같이 보여질 것입니다.
... server { ... location / { autoindex on; } ... } ...
이번에는 특정 디렉토리에서만 리스트를 보여주고 싶은 경우가 있습니다. 예를 들면 document-list
디렉토리에서만 파일 리스트를 보여주게 하고 싶다면 다음과 같이 location
블록에 패턴을 넣어주시면 됩니다. (대략적인 예시는 다음과 같습니다.)
... server { ... location ~ ^/document-list/ { autoindex on; } ... } ...
이는 ^/document-list/
패턴에 해당하는 경로에 대해 autoindex
를 활성화한다는 의미입니다.
여기에 autoindex
옵션과 같이 사용할 수 있는 추가 옵션들이 있습니다.
- autoindex_exact_size : 인덱스되는 파일에 파일 사이즈를 보여지게 할 것인지에 대한 여부입니다. 특별하게 보여줄 이유가 없다면
off
를 입력하여 사이즈를 숨길 수 있습니다. 옵션값은on
과off
가 있습니다. - autoindex_format : 인덱스 파일을 어떤 형식으로 나타낼 것인지에 대한 옵션입니다. 기본값은
html
이며 이외에도xml
,json
,jsonp
형식으로도 나타낼 수 있습니다. - autoindex_localtime : 인덱스 파일의 시간을 로컬 시간대로 표시할 것인지에 대한 여부입니다. 옵션값은
on
과off
가 있으며off
로 지정하면 UTC 시간을 사용합니다.
추가 옵션을 사용한 예시는 다음과 같습니다.
... server { ... location ~ ^/document-list/ { autoindex on; autoindex_exact_size off; autoindex_format html; autoindex_localtime on; include fastcgi.conf; } ... } ...
이제 모든 설정이 완료되었다면 저장하고 터미널로 돌아옵니다. 설정 파일을 적용하려면 Nginx 서비스 설정을 다시 로드(reload
)하거나 서버를 재시작(restart
)해주어야 합니다.
[root@localhost ~]# service nginx reload
이제 해당 페이지의 디렉토리까지만 입력하여 적용이 완료되었는지 확인해봅니다.
- 예시 : example.com/document-list/