nginx开启目录浏览功能(autoindex)

概述

这个博客其实是延迟了很久的一篇博客,暑假的时候做centos镜像站的时候想写的,nginx默认不开启这个功能,开启这个功能之后可以把它当文件浏览器使用

操作

这个肯定是要修改配置文件的
首先我们要理解下面这几个参数

  • autoindex 当设置为on的时候表示打开目录浏览功能
  • autoindex_exact_size 当设置为off的时候显示文件的大概大小就是显示单位为GB,MB,KB,如果不off默认是bytes单位
  • autoindex_localtime 当设置为on的时候默认显示文件的时间是服务器的时间

接着我们建立一个虚拟主机
在你的虚拟主机目录下新建一个文件file.conf
touch file.conf
然后添加下面配置文件

1
2
3
4
5
6
7
8
9
10
server{
listen 8080;
server_name 192.168.1.108;
location / {
root /file;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}

之后你要在根目录新建一个file文件夹,你可以在里面touch一个文件来验证,还有记住的是这个文件夹要有nginx用户的权限,我的nginx用户的名字叫www所以修改file文件夹的所有者和组为www
chown www:www /file/
之后浏览器访问你的192.168.1.108:8080就好了

上面是一整个虚拟主机打开目录浏览功能,但是有的时候我只想在这个虚拟主机下的一个目录开启这个功能怎么办
你可以把配置文件改成下面这样子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server{
listen 80;
server_name 192.168.1.108 www.bboy.com;
root /wordpress;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /wordpress/$fastcgi_script_name;
include fastcgi_params;
}
location /wp-content/{
autoindex on;
}

}

上面是一个wordpress站点,然后我修改的,在第三个location中你可以看到我添加了autoindex on这行,location位置是root下的wp-content,也就是wordpress文件夹下的wp-content目录,这个时候我们访问192.168.1.108是没有开启目录浏览的,但是我们访问192.168.1.108/wp-content我们发现这个地方是开启了目录浏览功能,还有要注意的一个很重要的地方就是root /wordpress;不能放在任何一个location下面,因为如果放在里面的话它的作用域就是这个location里面,对外面就不生效了

欢迎关注Bboysoul的博客www.bboy.app
Have Fun

欢迎关注我的其它发布渠道