일종의 '파일 브라우저'모드를 사용하도록 nginx를 구성하는 방법은 무엇입니까?


82

이전에 URL을 입력 할 때 이것을 본 적이 있으면 http://test.com/test/html 페이지를 제공하는 대신 주어진 위치에있는 모든 파일을 탐색 할 수있는 인터페이스와 같은 '파일 브라우저'를 제공합니다.

위치 컨텍스트에서 사용할 수있는 nginx 모듈 일 수 있다고 생각합니다.

nginx.conf파일 :

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  122.97.248.252;
                location /test {
                        root /home/yozloy/html/;
                        autoindex on;
                }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

업데이트 error.log

2012/05/19 20:48:33 [오류] 20357 # 0 : * 72 open () "/ home / yozloy / html / test"실패 (2 : 해당 파일 또는 디렉토리 없음), 클라이언트 : 125.43.236.33, 서버 : 122.97.248.252, 요청 : "GET / test HTTP / 1.1", 호스트 : "unicom2.markson.hk

위치 /test의미 를 오해해야합니다. http://example.com/test를 입력했을 때 의미한다고 생각 하면 루트 사전에 액세스합니다./home/yozloy/html/


테스트 디렉토리가 있습니까?
Dmitri Chubarov

@DmitriChubarov 테스트 디렉토리가 존재하지 않습니다. / test가 URL에서만 의미한다고 생각 했으므로 루트 디렉토리로 이동할 수 있으며 테스트 사전을 만들고 싶지 않습니다. 오해를해야하지만 어떻게 만들 수 있는지 맞죠?
mko

/ home / yozloy / html / test 디렉토리를 만들고 자동 색인이 작동하는지 확인하기 위해 어떻게 든 채우시겠습니까?
Dmitri Chubarov

1
@DmitriChubarov는 테스트 폴더를 만들 때 작동합니다.
mko

답변:


115

HttpAutoindexModule을 시도해야합니다.

자동 색인 옵션을로 설정합니다 on. 기본적으로 꺼져 있습니다.

예제 구성이 정상이어야합니다.

location /{ 
   root /home/yozloy/html/; 
   index index.html; 
   autoindex on;
}

autoindex 옵션이 없으면 파일 /이없는 디렉토리에서로 끝나는 요청에 대해 오류 403 이 표시 index.html됩니다. 이 옵션을 사용하면 간단한 목록이 표시됩니다.

<html>
<head><title>Index of /</title></head>
<body bgcolor="white">
<h1>Index of /test/</h1><hr><pre><a href="../">../</a>
<a href="test.txt">test.txt</a>                 19-May-2012 10:43            0
</pre><hr></body>
</html>

편집 : 테스트 할 참조를 삭제하도록 목록을 업데이트했습니다 .


유망 해 보인다. 그러나 나는 그것을 작동시킬 수 없습니다. 여기에 관련 지시문을 넣었습니다location /{ root /home/yozloy/html/; index index.html; autoindex on;}
mko

확인하시기 바랍니다 당신 다시 시작한 nginx를하고 nginx를 --without-http_autoindex_module하지 않고 컴파일
드미트리 Chubarov

내가 준 유일한 플래그가 --with-mp4_module이라는 것을 기억합니다. 이것은 http_autoindex_module이 기본적으로 설치된다는 것을 의미합니까? 또는 내가 설치하지 않았는지 확인하는 명령이
있습니까

nginx -V구성된 옵션 목록을 제공해야합니다. 자동 색인은 기본적으로 활성화되어 있습니다. 따라서 --without-autoindex가 없으면 괜찮습니다.
Dmitri Chubarov

1
그런 다음 오류 로그를 확인하고 질문을 업데이트하십시오. 토론이 너무 길어지고 있습니다. 나는 그것을 채팅으로 옮길 것이다.
Dmitri Chubarov

14

1. 모든 디렉토리의 내용 나열

자동 색인 옵션을로 설정합니다 on. 기본적으로 꺼져 있습니다.

구성 파일 ( vi /etc/nginx/sites-available/default)은 다음과 같아야합니다.

location /{ 
   ... ( some other lines )
   autoindex on;
   ... ( some other lines )
}

2. 일부 특정 디렉토리의 내용 만 나열

자동 색인 옵션을로 설정합니다 on. 기본적으로 꺼져 있습니다.

구성 파일 ( vi /etc/nginx/sites-available/default)
은 다음과 같아야합니다. 디렉토리 경로로
변경path_of_your_directory

location /path_of_your_directory{ 
   ... ( some other lines )
   autoindex on;
   ... ( some other lines )
}

도움이 되었기를 바랍니다 ..


2
location /<something>(예를 들어 주에 원하는 파일을 액세스 할 수있는 URL입니다 /data),하지 당신이 (예를 통해 nginx를 공유하고자하는 디렉토리 ~/videos/funny-cats/).

13

모든 답변에는 답변의 일부가 포함됩니다. 모든 것을 하나로 결합 해 보겠습니다.

새로 설치된 nginx 서버의 빠른 설정 "파일 브라우저"모드 :

  1. nginx의 기본 구성을 편집합니다.

    sudo vim /etc/nginx/sites-available/default
    
  2. 구성 섹션에 다음을 추가하십시오.

    location /myfolder {  # new url path
       alias /home/username/myfolder/; # directory to list
       autoindex on;
    }
    
  3. 거기에 폴더와 샘플 파일을 만듭니다.

    mkdir -p /home/username/myfolder/
    ls -la >/home/username/myfolder/mytestfile.txt
    
  4. nginx 다시 시작

    sudo systemctl restart nginx
    
  5. 결과 확인 : http://<your-server-ip>/myfolder예 : http://192.168.0.10/myfolder/

여기에 이미지 설명 입력


4

/home/yozloy/html/test폴더 생성이 필요 합니다. 또는 alias아래와 같이 사용할 수 있습니다 .

location /test {
    alias /home/yozloy/html/;
    autoindex on;
}

3

나는 여러 번 시도했다.

그리고 마침내 나는 그냥 넣었 지만 외부에 넣었 autoindex on;습니다 . 괜찮습니다.httpserver


1

이 섹션을 서버에 추가하십시오. location / {

location /your/folder/to/browse/ {
        autoindex on;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.