使用Caddy+FileManager扩展搭建在线文件管理器

技术教程 风为裳 4浏览 0评论 繁體

 

简介

Caddy服务器(或称Caddy Web)是一个开源的,使用Golang 编写,支持HTTP/2 的Web 服务端。 它使用Golang 标准库提供HTTP 功能。

安装

官网:https://caddyserver.com/

文档:https://caddyserver.com/docs

一键脚本: 支持(CentOS 6+ / Debian 6+ / Ubuntu 14.04 +)

wget -N --no-check-certificate https://www.fengweishang.com/document/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

服务及目录

启动:service caddy start
停止:service caddy stop
重启:service caddy restart
状态:service caddy status
日志:tail -f /tmp/caddy.log

安装目录:/usr/local/caddy
配置文件:/usr/local/caddy/Caddyfile

配置网站目录

file可以根据自己喜号来改

mkdir -p /mkdir /usr/local/caddy/www/file

示例配置文件:

echo ":80 {
 root /usr/local/caddy/www/file
 timeouts none
 # tls /root/xxx.crt /root/xxx.key
 gzip
 # basicauth / user userpwd 
 filemanager / {
  show /usr/local/caddy/www/file
  allow_new true
  allow_edit true
  allow_commands true
  allow_command mv
 }
}" > /usr/local/caddy/Caddyfile

IP HTTP 示例配置文件 第1行变更为 echo ":80 {
域名 HTTP 示例配置文件 第1行变更为 echo "http://domain.com {
域名 HTTPS 示例配置文件 第1行变更为 echo "https://domain.com { ,第4行 tls /root/xxx.crt /root/xxx.key 换成自己的证书/私钥路径
如果没有证书你可以这样做,示例配置文件 第4行 tls [email protected] 改为你的邮箱,caddy会自动申请SSL证书并配置好,而且还会定时续约SSL证书和强制http重定向https,申请SSL证书前请解析好域名记录。

重定向 HTTP>HTTPS

如果你是手动指定SSL证书和密匙时,caddy只会监听443端口,并不会自动设置80端口的重定向,你需要参考配置文件自行更改/usr/local/caddy/Caddyfile文件。

多个域名的重定向 示例配置文件 第1行变更为 echo "http://domain.com ,http://domain2.com ,http://domain3.com {

echo "http://domain.com {
 timeouts none
 redir https://domain.com{url}
}
https://domain.com {
 gzip
 tls /root/xxx.crt /root/xxx.key
 ...
}" > /usr/local/caddy/Caddyfile

 

反向代理

服务器IP 反向代理

echo ":80 {
 gzip
 proxy / http://www.baidu.com
}" > /usr/local/caddy/Caddyfile

域名 反向代理

echo "http://domain.com {
 gzip
 proxy / http://www.baidu.com
}" > /usr/local/caddy/Caddyfile

域名 反向代理 HTTPS

echo "https://domain.com {
 gzip
 tls /root/xxx.crt /root/xxx.key
 proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile

域名 反向代理 HTTPS 自动申请SSL证书

[email protected]改为你的邮箱,caddy会自动申请SSL证书并配置好,而且还会定时续约SSL证书和强制http重定向https,申请SSL证书前解析好域名记录。

echo "https://www.domain.com {
 gzip
 tls [email protected]
 proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile

 

FileManager扩展

filemanager在指定的目录中提供WebDAV功能和文件管理界面,可用于上传,删除,预览,重命名和编辑该目录中的文件。

出于安全考虑,通过某种身份验证来覆盖文件管理器的路径非常重要。你可以使用例如basicauth指令。

项目地址:Github

filemanager [baseurl] {
    show           directory
    webdav         [path]
    styles         filepath
    allow_new      [true|false]
    allow_edit     [true|false]
    allow_commands [true|false]
    allow_command  command
    block_command  command
    before_save    command
    after_save     command
    allow          [url|dotfiles]
    allow_r        regex
    block          [url|dotfiles]
    block_r        regex
}

上述所有选项都是可选的。

  • baseurl是您将访问文件管理器界面的URL。默认为 / 。
  • show是要浏览的目录的路径,相对或绝对,默认为./。
  • webdav是将附加到baseurl的路径,WebDAV将被访问。默认为/webdav。
  • styles是样式表文件的相对或绝对路径。该文件不需要从网络访问。
  • allow_new是创建新文件和目录的权限。默认为true。
  • allow_edit是编辑,重命名和删除文件或目录的权限。默认为true。
  • allow_commands是执行命令的权限。默认为true。
  • allow_command和block_command通过管理界面给出或拒绝执行某个命令的权限。默认情况下git,svn并hg启用。
  • before_save和after_save允许您在保存和保存文件之后设置要执行的自定义命令。{path}可以使用占位符,并将其替换为文件路径。
  • allow和block可用于允许或拒绝使用其URL访问特定文件或目录。您可以使用allow dotfiles来允许或阻止访问点文件。被阻止的文件将不会显示在管理界面中。默认情况下,block dotfiles已激活。
  • allow_r和block_r以及以前选项的变体,但是您可以使用正则表达式。这些正则表达式用于匹配URL,而不是内部文件路径。

单用户和多用户配置

filemanager {
 # 在前面是设定 全局配置的,所有用户都会继承全局配置。
 allow_commands false # 这个全局配置代表所有用户都无法执行 Linux命令。
 allow_new false # 这个全局配置代表所有用户都无法新建 文件或文件夹。
 user1:
 # 用户名下面就是该用户 user1 的具体配置,只针对该用户。
 # 该用户的配置可以覆盖 同名的全局配置。
 allow_commands trus # 这个用户配置,会覆盖全局配置,user1 用户允许执行 Linux命令。
 # 该用户 user1 无法新建 文件或文件夹。
 user2:
 # 用户名下面就是该用户 user2 的具体配置,只针对该用户。
 # 该用户的配置可以覆盖 同名的全局配置。
 allow_new true # 该用户 user2 可以新建 文件或文件夹,覆盖全局配置。
}

用户名和密码不支持特殊符号,必须使用 数字和密码 [a-z][A-z][0-6]

单用户

需要使用用户名和密码登录访问 user/userpwd ,允许新建/删除/移动/重命名 允许linux命令 cp

echo "http://domain.com {
 root /usr/local/caddy/www/file
 timeouts none
 gzip
 basicauth / user userpwd
 filemanager / {
  show /usr/local/caddy/www/file
  user:
  allow_new true
  allow_edit true
  allow_commands true
  allow_command cp
 }
}" > /usr/local/caddy/Caddyfile

多用户

需要使用用户名和密码登录访问,分别是admin和user用户

admin用户权限:允许新建/删除/移动/重命名 允许linux命令 cp

user用户权限:只允许浏览

echo "http://domain.com {
 root /usr/local/caddy/www/file
 timeouts none
 gzip
 basicauth / admin adminpwd
 basicauth / user userpwd
 filemanager / {
  show /usr/local/caddy/www/file
  allow_commands false
  admin:
  allow_new true
  allow_edit true
  allow_commands true
  allow_command cp
  user:
  allow_new false
  allow_edit false
 }
}" > /usr/local/caddy/Caddyfile

相关资料

https://www.52maicong.com/8261.html
https://zhuanlan.zhihu.com/p/31940605
https://www.moerats.com/archives/403/
https://doub.io/jzzy-3/

转载请注明:风为裳 » 使用Caddy+FileManager扩展搭建在线文件管理器

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址