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

如何配置nginx以启用kinda';文件浏览器';模式,nginx,Nginx,我以前在键入URLhttp://test.com/test/,它没有给我一个html页面,而是给我一个类似“文件浏览器”的界面来浏览给定位置的所有文件 我认为它可能是一个nginx模块,可以在位置上下文中启用 nginx.conf文件: worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/oc

我以前在键入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;
        }
    }
}
更新
错误日志

2012/05/19 20:48:33[错误]20357#0:*72 open()“/home/yozloy/html/test”失败(2:没有这样的文件或目录),客户端:125.43.236.33,服务器:122.97.248.252,请求:“获取/测试HTTP/1.1”,主机:unicm2.markson.hk

我一定是误解了位置
/test
的意思,我以为这意味着当我键入时,它将访问根词典,即
/home/yozloy/html/
,您应该试试

autoindex
选项设置为
on
。默认设置为
off

您的示例配置应该是正确的

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>

索引/
索引/测试/
2012年5月19日10:43 0
编辑:更新列表以删除任何要测试的引用。

1.列出所有目录的内容 将自动索引选项设置为启用。默认情况下,该选项处于禁用状态

您的配置文件(
vi/etc/nginx/sites available/default
)应该如下所示

location /path_of_your_directory{ 
   ... ( some other lines )
   autoindex on;
   ... ( some other lines )
}
2.仅列出某些特定目录的内容 将自动索引选项设置为启用。默认情况下,该选项处于禁用状态

您的配置文件(
vi/etc/nginx/sites available/default

应该是这样的。
将目录的路径更改为目录路径

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

希望对您有所帮助。

只需将此部分添加到服务器,就在
位置/{

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

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

sudo vim /etc/nginx/sites-available/default
我试过很多次了


最后我把
自动索引打开;
放在
http
中,但在
服务器之外,这样就可以了。

所有答案都包含部分答案。让我试着将所有答案合为一

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

  • 编辑nginx的默认配置:

    location /myfolder {  # new url path
       alias /home/username/myfolder/; # directory to list
       autoindex on;
    }
    
  • 将以下内容添加到配置部分:

    mkdir -p /home/username/myfolder/
    ls -la >/home/username/myfolder/mytestfile.txt
    
  • 在此处创建文件夹和示例文件:

    sudo systemctl restart nginx
    
  • 重新启动nginx

  • 检查结果:
    http:///myfolder
    例如


  • 这似乎很有希望。但我无法让它工作,我将相关指令放在这里
    location/{root/home/yozloy/html/;index index.html;autoindex on;}
    请检查您是否重新启动了nginx,并且nginx没有使用--without-http\u autoindex\u模块进行编译我记得我给出的唯一标志是--with-mp4\u模块,这是否意味着默认情况下安装了http\u autoindex\u模块?或者我是否有一些命令来检查我是否安装了它,而不是
    nginx-V
    应该为您提供配置列表红色选项。请注意,自动索引在默认情况下处于启用状态。因此,如果没有--without autoindex,那么它就可以了。请检查错误日志,然后更新问题。讨论时间太长了。我会将其移至聊天室。测试目录是否存在?@DmitriChubarov test directory不存在,我认为/test仅表示url中的内容,因此我可以直接到根目录,我不想做一个测试字典,我一定是误解了,但是我怎么才能把它做对呢?你能创建/home/yozloy/html/test目录并填充它看看自动索引是否有效吗?@DmitriChubarov感谢它在我创建测试文件夹时起作用。
    location/
    是访问e您想要共享的文件(例如
    /data
    ),而不是您希望通过nginx共享的目录(例如
    ~/videos/fully cats/
    )。
    sudo systemctl restart nginx