CentOS下搭建Zdir目录列表程序
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
很快就会安装完成。完成后输入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这个尾巴了。




