Nginx利用filebrowser管理vps中的文件
站点环境用的是LNMP一键包,并没有像大家一样用宝塔、AMH之类的面板程序,一来是因为vps配置较低,二来用一键包个人认为比较安全,但是遇到需要管理vps中的文件的时候就比较麻烦。不过还好,可以配合filebrowser管理vps的文件。
filebrowser 功能介绍
filebrowser是用Go语言开发的文件管理器,不需要第三方地依赖,除了配合Nginx、Apache、Caddy等Web服务器使用外,也可单独作为Web文件管理器使用,功能上支持简单的音视频播放,分享文件方面提供永久链接或临时链接(按时、分、秒)进行分享,并支持在下载页面展示当前下载页面的二维码,非常实用。站长我喜欢用filebrowser编辑一些配置文件,避免了了SSH终端用vi编辑文件的痛苦。
安装filebrowser
前面说了filebrowser的功能,现在是分享搭建filebrowser的步骤,我用的linux环境是Debian 64位系统,所以这里以Debian 64位系统作为本文的系统基础,大家可做做参考。
1.切换到home目录
cd /home
2.SSh连接vps,访问filebrowse托管平台github的releases 页面,下载对应系统版本的filebrowser文件,并解压文件。
wget https://github.com/filebrowser/filebrowser/releases/download/v2.0.16/linux-amd64-filebrowser.tar.gz
tar -xzvf linux-amd64-filebrowser.tar.gz
3.赋予filebrowser运行权限
chmod +x ./filebrowser
4.指定端口运行一遍filebrowser,这样filebrowser就会在同目录下生成同名配置文件filebrowser.db
。因为Nginx占用了80、433端口,所以这里我指定了其他端口,你可以按照自己的需求指定自己的端口,本文以25557端口为例
./filebrowser -p 25557 -a 0.0.0.0
5.访问filebrowser,并更改默认的密码,默认账户密码皆为admin
http://ip:25557
6.终止filebrowser运行
CTRL+C
7.设置filebrowser为系统服务
cat << EOF > /lib/systemd/system/filebrowser.service
8.接着输入下列配置
[Unit]
Description=Filebrowser Client Service
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/home/filebrowser -p 25557 -a 0.0.0.0
ExecReload=/home/filebrowser reload -p 25557 -a 0.0.0.0
[Install]
WantedBy=multi-user.target
EOF
9.开机启动filebrowser
systemctl enable filebrowser
10.启用filebrowser
systemctl start filebrowser
设置通过域名并启用SSL访问filebrowser
通过的上面的步骤,已经安装filebrowser并设置为系统服务运行,通过ip+端口访问filebrowser并不美观,也不安全,建议启用域名并上SSL访问filebrowser,这里通过LNMP一键包反代实现。
LNMP一键包反代方式实现SSL访问filebrowser
如果你用的LNMP一键包,就简单许多,直接通过 lnmp vhost add
方式新建站点并启用证书,然后编辑站点对应的conf
配置文件,我这里以xxx.com示例:
vi /usr/local/nginx/conf/vhost/xxx.com.conf
把下面的部分:
server
{
listen 80;
server_name xxx.com;
.....
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name XXX.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/XXX.com;
.....
}
改为
server
{
listen 80;
server_name xxx.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name XXX.com;
.....
location / {
proxy_pass http://localhost:27775;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
特别强调:上面的网页配置文件上面的网页配置文件
conf
中,一定要删除下列列出的部分,否则filebrowser会一直卡在首页界面并无限循环。因为不删除这部分,filebrowser无法正常加载css、js等文件,页面当然就无法正常加载了
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
重启Nginx生效
lnmp restart
Nginx反代方式
Nginx反代方式跟LNMP基本类似,因为LNMP一键包本质上还是Nginx环境,配置文件如下:
server {
listen 80;
server_name XXX.com;
rewrite ^ https://$http_host$request_uri? permanent;
}
server {
listen 443;
root /XXX/XXX.com;
server_name XXX.com;
ssl on;
ssl_certificate /XXX.com.bundle.crt; #证书路径
ssl_certificate_key /XXX.com.key; #密钥路径
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:27775;
}
}
重启nginx
service nginx restart
filebrowser首页目录设置
设置
——用户管理
——用户名右边的编辑按钮——目录范围
可设置下面的常见目录:
/home ##用户文件夹
/ ##根目录
. ##filebrowser展示为当前目录,即filebrowser所在的目录
/home/wwwwroot ##LNMP的网页存放目录
/home/wwwlogs/ ##LNMP的网页日志目录