How to configure nginx to enable kinda 'file browser' mode?

Nginx

Nginx Problem Overview


Once I've seen this before when I type a URL http://test.com/test/, instead of give me a html page, it gives me a 'file browser' like interface to browse all the files in the given location.

I think it maybe a nginx module that could be enable in the location context.

The nginx.conf file:

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

update the error.log

> 2012/05/19 20:48:33 [error] 20357#0: *72 open() "/home/yozloy/html/test" failed (2: No such file or directory), client: 125.43.236.33, server: 122.97.248.252, request: "GET /test HTTP/1.1", host: "unicom2.markson.hk

I must misunderstand the location /test mean, I thought it meant when I type http://example.com/test, then it would access the root dictionary which is /home/yozloy/html/

Nginx Solutions


Solution 1 - Nginx

You should try ngx_http_autoindex_module.

Set autoindex option to on. It is off by default.

Your example configuration should be ok

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

Without autoindex option you should be getting Error 403 for requests that end with / on directories that do not have an index.html file. With this option you should be getting a simple listing:

<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: Updated the listing to delete any references to test

Solution 2 - Nginx

All answers contain part of the answer. Let me try to combine all in one.

Quick setup "file browser" mode on freshly installed nginx server:

  1. Edit default config for nginx:

     sudo vim /etc/nginx/sites-available/default
    
  2. Add following to config section:

    location /myfolder {  # new url path
       alias /home/username/myfolder/; # directory to list
       autoindex on;
    }
    
  3. Create folder and sample file there:

     mkdir -p /home/username/myfolder/
     ls -la >/home/username/myfolder/mytestfile.txt
    
  4. Restart nginx

     sudo systemctl restart nginx
    
  5. Check result: http://<your-server-ip>/myfolder for example http://192.168.0.10/myfolder/

enter image description here

Solution 3 - Nginx

  1. List content of all directories

Set autoindex option to on. It is off by default.

Your configuration file ( vi /etc/nginx/sites-available/default ) should be like this

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

2. List content of only some specific directory

Set autoindex option to on. It is off by default.

Your configuration file ( vi /etc/nginx/sites-available/default )
should be like this.
change path_of_your_directory to your directory path

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

Hope it helps..

Solution 4 - Nginx

You need create /home/yozloy/html/test folder. Or you can use alias like below show:

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

Solution 5 - Nginx

I've tried many times.

And at last I just put autoindex on; in http but outside of server, and it's OK.

Solution 6 - Nginx

Just add this section to server, just before the location / {

location /your/folder/to/browse/ {
        autoindex on;
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmkoView Question on Stackoverflow
Solution 1 - NginxDmitri ChubarovView Answer on Stackoverflow
Solution 2 - Nginx0x8BADF00DView Answer on Stackoverflow
Solution 3 - NginxAbhishek GoelView Answer on Stackoverflow
Solution 4 - NginxXiaorong LiaoView Answer on Stackoverflow
Solution 5 - NginxchaosinkView Answer on Stackoverflow
Solution 6 - NginxOhad the LadView Answer on Stackoverflow