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/
You should try HttpAutoindexModule.
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
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..
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:
Edit default config for ngingx:
sudo vim /etc/nginx/sites-available/default
Add following to config section:
location /myfolder { # new url path
alias /home/username/myfolder/; # directory to list
autoindex on;
}
Create folder and sample file there:
mkdir -p /home/username/myfolder/
ls -la >/home/username/myfolder/mytestfile.txt
Restart nginx
sudo systemctl restart nginx
Check result: http://<your-server-ip>/myfolder
for example http://192.168.0.10/myfolder/
You need create /home/yozloy/html/test
folder. Or you can use alias
like below show:
location /test {
alias /home/yozloy/html/;
autoindex on;
}
I've tried many times.
And at last I just put autoindex on;
in http
but outside of server
, and it's OK.
Just add this section to server, just before the location / {
location /your/folder/to/browse/ {
autoindex on;
}