web-dev-qa-db-fra.com

Comment configurer nginx pour activer un peu le mode 'navigateur de fichiers'?

Une fois que j'ai vu cela auparavant quand je tape une URL http://test.com/test/, au lieu de me donner une page html, cela me donne un 'navigateur de fichiers' comme une interface pour parcourir tous les fichiers à l’emplacement donné.

Je pense que c'est peut-être un module nginx qui pourrait être activé dans le contexte de l'emplacement.

Le nginx.conf fichier:

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;
        }
    }
}

mettre à jour le error.log

2012/05/19 20:48:33 [erreur] 20357 # 0: * 72 open () "/ home/yozloy/html/test" a échoué (2: aucun fichier ou répertoire de ce type), client: 125.43.236.33, serveur : 122.97.248.252, requête: "GET/test HTTP/1.1", hôte: "unicom2.markson.hk

Je dois mal comprendre l'emplacement /test _, je pensais que cela signifiait que quand je tapais http://example.com/test , alors il aurait accès au dictionnaire racine qui est /home/yozloy/html/

67
mko

Vous devriez essayer HttpAutoindexModule.

Définissez l'option autoindex sur on. C'est désactivé par défaut.

Votre exemple de configuration devrait être ok

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

Sans l'option autoindex, l'erreur 403 devrait apparaître pour les demandes se terminant par / sur les répertoires n’ayant pas de index.html fichier. Avec cette option, vous devriez obtenir une liste simple:

<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>

Edit: Mise à jour de la liste pour supprimer toutes les références à tester

94
Dmitri Chubarov

1. Liste le contenu de tous les répertoires

Définissez l'option autoindex sur on. C'est désactivé par défaut.

Votre fichier de configuration (vi /etc/nginx/sites-available/default) devrait être comme ça

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

2. Liste le contenu de seulement un répertoire spécifique

Définissez l'option autoindex sur on. C'est désactivé par défaut.

Votre fichier de configuration (vi /etc/nginx/sites-available/default)
devrait être comme ça.
changement path_of_your_directory vers votre chemin de répertoire

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

J'espère que ça aide..

14
Abhishek Goel

Vous devez créer le dossier /home/yozloy/html/test. Ou vous pouvez utiliser alias comme ci-dessous:

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

Toutes les réponses contiennent une partie de la réponse. Laissez-moi essayer de combiner tout en un.

Mode d'installation rapide "Navigateur de fichiers" sur le serveur Nginx fraîchement installé:

  1. Éditez la configuration par défaut pour ngingx:

    Sudo vim /etc/nginx/sites-available/default
    
  2. Ajouter ce qui suit à la section de configuration:

    location /myfolder {  # new url path
       alias /home/username/myfolder/; # directory to list
       autoindex on;
    }
    
  3. Créez un dossier et un exemple de fichier ici:

    mkdir -p /home/username/myfolder/
    ls -la >/home/username/myfolder/mytestfile.txt
    
  4. Redémarrez nginx

    Sudo systemctl restart nginx
    
  5. Résultat de la vérification: http://<your-server-ip>/myfolder _ par exemple http://192.168.0.10/myfolder/

enter image description here

3
0x8BADF00D

J'ai essayé plusieurs fois.

Et enfin je viens de mettre autoindex on; dans http mais en dehors de server, et c'est OK.

2
chaosink

Ajoutez simplement cette section au serveur, juste avant le location / {

location /your/folder/to/browse/ {
        autoindex on;
}
1
Ohad the Lad