当前位置:首页 > 学习 > 正文内容

CentOS下搭建Zdir目录列表程序

hunterzuo2年前 (2023-06-21)学习333

Zdir.png

Zdir是一款相对比较流行的目录列表程序,与Directory Lister不同的是Zdir可以用户登录以后实现文件上传,可以实现文件分享、二维码等功能。相比起其他的目录列表程序,Zdir也是比较轻量、简洁的,受到了很多人的欢迎。它并没有像Directory Lister那样最朴素的直链功能,但仍然不失为一款非常优秀的目录列表程序,搭建一个练练手吧。

# 安装好lnmp环境,进入网站目录,下载一键安装脚本
$ wget http://soft.xiaoz.org/zdir/sh/zdir.sh 

# 默认安装是在/data/apps/zdir目录下,现在需要改变默认的路径为网站路径
$ sudo bash zdir.sh install

Snipaste_2023-06-21_18-40-09.png

e12ec1da1a7dc2f8.png

很快就会安装完成。完成后输入http://yourdomain.com:6800,点击“登录”,按照页面显示的要求设置用户名和密码,之后就可以登陆了。zdir默认是在6080端口运行,输入不方便,这需要我们设置反向代理,把6080端口的请求转发到http的80端口,再启用https访问跳转到443端口,一切就完美了。

# 进入lnmp的网站配置文件目录,这里列出了vps上所有网站的配置文件
$ cd /usr/local/nginx/conf/vhost

# 备份网站的配置文件,假设你的网站域名是xxx.yourdomain.com
$ cp xxx.yourdomain.com.conf xxx.yourdomain.com.conf.bak

  将以下配置写入xxx.yourdomain.com.conf文件中

location = / {
proxy_pass http://127.0.0.1:6080;
proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 匹配Vue静态文件目录,和public公共文件夹目录
location ~* /(assets|public|api|admin) {
#如果是图片等静态文件,添加Expires头部
if ( $uri ~* .*\.(gif|jpg|jpeg|png|bmp|webp|swf|flv|mp4|ts|ico|js|css|svg|ico)$ ) {
expires 7d;
}
    client_max_body_size 1024m;
proxy_pass http://127.0.0.1:6080;
proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 非/ 和非 /assets目录的时候进行重定向来去掉/public,/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到,优先级最低
location / {
rewrite ^/(.*) /public/$1;
}

  这里贴一份我自己网站的配置文件

server
    {
        listen 80;
        #listen [::]:80;
        server_name xxx.yourdomain.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/xxx.yourdomain.com;
        #include rewrite/other.conf;
        #error_page   404   /404.html;
        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
        include enable-php-pathinfo.conf;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /.well-known {
            allow all;
        }
        location ~ /\.
        {
            deny all;
        }
        location / {
            return 301 https://$host$request_uri;
        }
        access_log  /home/wwwlogs/xxx.yourdomain.com.log;
    }
server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name xxx.yourdomain.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/xxx.yourdomain.com;
        ssl_certificate /usr/local/nginx/conf/ssl/xxx.yourdomain.com/fullchain.cer;
        ssl_certificate_key /usr/local/nginx/conf/ssl/xxx.yourdomain.com/xxx.yourdomain.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
        location = / {
                proxy_pass http://127.0.0.1:6080;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~* /(assets|public|api|admin) {
                if ( $uri ~* .*\.(gif|jpg|jpeg|png|bmp|webp|swf|flv|mp4|ts|ico|js|css|svg|ico)$ ) {
                        expires 7d;
                }
                client_max_body_size 1024m;
                proxy_pass http://127.0.0.1:6080;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location / {
                rewrite ^/(.*) /public/$1;
        }
        include rewrite/other.conf;
        #error_page   404   /404.html;
        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
        include enable-php-pathinfo.conf;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /.well-known {
            allow all;
        }
        location ~ /\.
        {
            deny all;
        }
        access_log  /home/wwwlogs/xxx.yourdomain.com.log;
    }

记得把配置文件中的xxx.yourdomain.com换成自己的域名。效果如下,直接用域名访问,不用再带6080这个尾巴了。

Snipaste_2023-06-21_19-12-48.png



扫描二维码推送至手机访问。

版权声明:本文由人生如诗发布,如需转载请注明出处。

本文链接:https://blog.nifeng.win/?id=11

分享给朋友:

“CentOS下搭建Zdir目录列表程序” 的相关文章

CentOS下使用dante搭建socks5代理服务器

CentOS下使用dante搭建socks5代理服务器

Socks5是一个常见的代理服务器,尤其是在管理远程SSH主机时,由于中国国际网络出口比较不稳定,各种抽风、掉包和高延时,导致SSH经常断线,即使使用screen掉线多了也非常不方便,因此有必要找一台线路很稳定的服务器比如电信的CN2GIA线路的服务器,搭建一个socks5服务器来连接和管理远程服务...

CentOS下搭建Cloudreve对接Aria2实现网盘和在线下载功能

CentOS下搭建Cloudreve对接Aria2实现网盘和在线下载功能

一直想要一个在线的大容量网盘,把本机上一些文档、视频以及网上搜集的一些资源放到网盘上,一来节约本地硬盘资源,二来可以实现网络共享,随时随地可以查看,第三也相当于把这些资源在网络上做个备份。要实现这些功能有很多方案,我网上搜索查询了以后,最后选择了Cloudreve和Aria2这个组合,搭建Cloud...

CentOS在Lnmp环境下搭建Directory Lister目录列表程序

CentOS在Lnmp环境下搭建Directory Lister目录列表程序

在搭建网站中,我喜欢把一些自己常用的脚本和文件放到一个自己构建的网站上,折腾其他vps的时候,不必再从google上去搜索下载,否则十分麻烦。由于基本都是在linux系统的环境使用和下载这些软件和脚本,因此如果能够实现直链,而且是跟绝对路径一致的话,便于记忆下载更方便。其实网上的目录列表程序比较多,...

CentOS环境下搭建WordPress博客程序

CentOS环境下搭建WordPress博客程序

WordPress是目前最流行、用户最多、使用最广泛的博客程序,它的功能丰富完善,上下游的生态完备,插件拓展众多,各类教程很多,对于新手来说是一款适合的个人博客程序。但是功能众多的同时,WordPress也显得很庞大臃肿,加载起来比较慢,远不如Z-blog,typecho之类的程序。个人角度来看,我...

CentOS下搭建WebSSH并配置密码访问

CentOS下搭建WebSSH并配置密码访问

自己平时比较喜欢折腾,手上有一些linux系统的vps,有的时候不在家里或者办公室没有SSH客户端,管理这些vps比较麻烦。这几天在网上逛,发现可以通过搭建网页版的SSH客户端,这下就方便了。只要把webssh放在一台网络比较友好的vps上,那么几乎可以实现随时随地方便地连接和管理我的vps了。今天...