如何配置nginx以启用kinda'文件浏览器'模式?

时间:2012-05-19 07:28:07

标签: nginx

在我输入网址http://test.com/test/之前我曾经看过这个,而不是给我一个html页面,它给了我一个“文件浏览器”界面来浏览给定位置的所有文件。 / p>

我认为它可能是一个可以在位置上下文中启用的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/

6 个答案:

答案 0 :(得分:91)

你应该试试HttpAutoindexModule。

将自动索引选项设置为on。它默认是关闭的。

您的示例配置应该没问题

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

如果没有自动索引选项,对于没有/文件的目录上以index.html结尾的请求,您应该收到错误403。使用此选项,您应该获得一个简单的列表:

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

修改:更新了列表以删除对测试的任何引用

答案 1 :(得分: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 :(得分:4)

您需要创建/home/yozloy/html/test文件夹。或者您可以使用alias,如下所示:

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

答案 3 :(得分:2)

我已多次尝试过。

最后我只是将autoindex on;放在httpserver之外,并且没问题。

答案 4 :(得分:2)

所有答案均包含部分答案。让我尝试将所有内容合而为一。

在新安装的nginx服务器上快速设置“文件浏览器”模式:

  1. 编辑ngingx的默认配置:

    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/

enter image description here

答案 5 :(得分:1)

只需在location / {

之前将此部分添加到服务器即可
location /your/folder/to/browse/ {
        autoindex on;
}