Total Pageviews

Saturday, 13 May 2017

利用Caddy,非常简单的部署反向代理/镜像(支持自签SSL证书)

不想折腾的话,就建议使用Caddy来反代,毕竟Caddy配置简单也支持Let’s Encrypt证书,很方便。

安装Caddy

运行以下命令:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh 
&& chmod 755 caddy_install.sh && bash caddy_install.sh

配置文件

以下所有示例域名为toyoo.ml,请注意替换为自己的域名 !
1、服务器IP反向代理
下面是一个,用你服务器的IP来反向代理一个http协议的网站http://www.baidu.com
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo ":80 {
 gzip
 proxy / http://www.baidu.com
}" > /usr/local/caddy/Caddyfile
服务器IP也可以反向代理HTTPS协议的网站,但是需要自签SSL证书,现在的浏览器一般都不会认自签的SSL证书,所以不建议这么做。
2、域名反向代理HTTP
下面是一个,用你的域名来反向代理一个http协议的网站http://www.baidu.com
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "http://toyoo.ml {
 gzip
 proxy / http://www.baidu.com
}" > /usr/local/caddy/Caddyfile
如果你需要反向代理HTTPS协议的网站,比如https://www.baidu.com,那么继续看下面步骤。
3、域名反向代理HTTPS
如果你有SSL证书和密匙的话,把SSL证书(xxx.crt)和密匙(xxx.key)文件放到/root文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "https://toyoo.ml {
 gzip
 tls /root/xxx.crt /root/xxx.key
 proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile
如果你没有SSL证书和密匙,那么你可以这样做:
下面的xxxx@xxx.xx改成你的邮箱,同时需要注意的是,申请SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则Caddy会申请并配置失败!
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "https://toyoo.ml {
 gzip
 tls xxxx@xxx.xx
 proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile
如果一切正常,那么Caddy会自动帮你申请SSL证书并配置好,而且会定时续约SSL证书和强制http重定向至https
4、HTTP重定向为HTTPS
当你是手动指定SSL证书和密匙 来配置的话,Caddy只会监听443端口(https),并不会自动设置80端口(http)的重定向(如果是Caddy自动申请的SSL证书,那么就自动做好了),如果要做重定向的话,可以这样做:
下面的示例代码中,是把http://toyoo.ml、http://233.toyoo.mlhttps://666.toyoo.ml三个域名都重定向到了 https://toyoo.ml
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "http://toyoo.ml ,http://233.toyoo.ml ,https://666.toyoo.ml {
 redir https://toyoo.ml{url}
}
https://toyoo.ml {
 gzip
 tls /root/xxx.crt /root/xxx.key
 proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile
修改完Caddy的配置文件后,重启Caddy即可。
/etc/init.d/caddy restart
---------------------------------------------------------
Caddy是一个使用Go语言写的 HTTP Server,开发时间并不长,在性能上或许比不上 Nginx,但是在上手难度/配置难度上,非常简单
并且 Caddy支持 自动签订Let’s Encrypt SSL证书,什么都不需要你管,只需要提供一个邮箱,剩下的他会自己申请、配置和续约 SSL证书!

安装Caddy

Caddy 是 Go语言编译好的二进制程序,所以只有一个 Caddy 文件(还需要生成一个配置文件),但是为了管理方便,所以我做了个一键脚本:
 wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
安装Caddy成功后,我们就继续下面的步骤。

配置文件

Caddy的特点之一就是,配置文件非常的简单,继续下面看就知道了。

服务器IP 反向代理

下面是一个,用你服务器的IP 来反向代理一个 http 协议的网站 http://www.baidu.com

一次性复制以下全部代码,并粘贴到SSH中执行:
  1. echo ":80 {
  2. gzip
  3. proxy / http://www.baidu.com
  4. }" > /usr/local/caddy/Caddyfile
服务器IP 也可以反向代理 HTTPS 协议的网站,但是需要自签SSL证书,现在的浏览器一般都不会认 自签的SSL证书,所以不建议这么做。

域名 反向代理 HTTP

下面是一个,用你的域名 来反向代理一个 http 协议的网站 http://www.baidu.com

以下所有示例域名为 toyoo.ml ,请注意替换为 自己的域名 !
一次性复制以下全部代码,并粘贴到SSH中执行:
  1. echo "http://toyoo.ml {
  2. gzip
  3. proxy / http://www.baidu.com
  4. }" > /usr/local/caddy/Caddyfile
如果你需要反向代理 HTTPS 协议的网站,比如 https://www.baidu.com ,那么继续看下面步骤。

域名 反向代理 HTTPS

如果你有 SSL证书和密匙的话,把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到 /root 文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:

一次性复制以下全部代码,并粘贴到SSH中执行:
  1. echo "https://toyoo.ml {
  2. gzip
  3. tls /root/xxx.crt /root/xxx.key
  4. proxy / https://www.baidu.com
  5. }" > /usr/local/caddy/Caddyfile
如果你没有 SSL证书和密匙,那么你可以这样做:
下面的 xxxx@xxx.xx 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!
一次性复制以下全部代码,并粘贴到SSH中执行:
  1. echo "https://toyoo.ml {
  2. gzip
  3. tls xxxx@xxx.xx
  4. proxy / https://www.baidu.com
  5. }" > /usr/local/caddy/Caddyfile
如果一切正常,那么Caddy会自动帮你申请 SSL证书并配置好,而且会定时续约SSL证书 和 强制 http重定向至https !
上面这两段示例中,只要把 https://www.baidu.com 改成 https://www.google.com ,即可实现反向代理 Google了!
需要注意的是,因为墙会检测关键词,所以请务必使用 HTTPS协议,不要使用 HTTP协议,否则很快就会被墙!

HTTP重定向为HTTPS

当你是手动指定 SSL证书和密匙 来配置的话,Caddy只会监听 443端口(https),并不会自动设置 80端口(http)的重定向(如果是Caddy自动申请的SSL证书,那么就自动做好了),如果要做重定向的话,可以这样做:

下面的示例代码中,是把 http://toyoo.ml、http://233.toyoo.ml、https://666.toyoo.ml 三个域名都重定向到了 https://toyoo.ml
一次性复制以下全部代码,并粘贴到SSH中执行:
  1. echo "http://toyoo.ml ,http://233.toyoo.ml ,https://666.toyoo.ml {
  2. redir https://toyoo.ml{url}
  3. }
  4. https://toyoo.ml {
  5. gzip
  6. tls /root/xxx.crt /root/xxx.key
  7. proxy / https://www.baidu.com
  8. }" > /usr/local/caddy/Caddyfile
修改完 Caddy的配置文件后,重启 Caddy即可。
  1. service caddy restart

使用说明

启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
查看Caddy启动日志: tail -f /tmp/caddy.log
Caddy配置文件位置:/usr/local/caddy/Caddyfile

卸载 Caddy:

执行以下代码后,会问你是否确定要卸载 Caddy,输入 y 即可。
注意:卸载 Caddy 会把Caddy的所有虚拟主机文件夹和配置文件删除,并且不可恢复!
wget -N --no-check-certificate https://raw.githubusercontent.com/pipesocks/install/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh uninstall

其他说明

单网站/多网站

当然,上面的几个示例,实际上都算是单网站。

最后一句代码都是 }" > /usr/local/caddy/Caddyfile ,也就是清空了 Caddy配置文件,然后再写入了配置信息。
如果你要设置多个网站,那么把最后一句代码改成 }" >> /usr/local/caddy/Caddyfile 即可,注意是把 > 改成 >> ,这样就不会清空原来的配置信息了,而是会把要添加的配置信息加到配置文件最后!

网页加密

什么?担心自己做的镜像不小心爆露被滥用?没事,设置一下用户名和密码即可,只需要在上面的示例中加入这行代码:

  1. basicauth / user passwd
user指的是 用户名,passwd指的是 用户名密码,设置这个后,访问网页就需要输入用户名和密码来验证了!
注意:用户名和密码不支持特殊符号,必须使用 数字和字母 [a-z][A-z][0-6]
修改配置文件后,记得重启 Caddy !
配置示例:
  1. echo "https://toyoo.ml {
  2. gzip
  3. basicauth / user passwd
  4. tls /root/xxx.crt /root/xxx.key
  5. proxy / https://www.baidu.com
  6. }" > /usr/local/caddy/Caddyfile

记录日志

如果你想要记录网站访问日志,那么只需要在上面的示例中加入这行代码:

  1. log /tmp/caddy_1.log
修改配置文件后,记得重启 Caddy !
配置示例:
  1. echo "https://toyoo.ml {
  2. gzip
  3. log /tmp/caddy_1.log
  4. tls /root/xxx.crt /root/xxx.key
  5. proxy / https://www.baidu.com
  6. }" > /usr/local/caddy/Caddyfile
日志文件的位置和名字可以自己改,放到 /tmp 文件夹的话,每次重启都会自动清空日志的。

启动显示成功,但是实际未运行

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。
你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。
所以这种情况下,你应该去查看启动日志:
  1. tail -f /tmp/caddy.log

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

  1. netstat -lntp
  2. # 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。
不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。
停止 Apache2
  1. service apache2 stop
  2. # 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
  3. kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
取消开机自启动
  1. # 以下代码仅限 Debian/Ubuntu 系统 #
  2. update-rc.d -f apache2 remove
卸载 Apache2
  1. # 以下代码仅限 Debian/Ubuntu 系统 #
  2. apt-get remove --purge apache2
关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。
service caddy start 
-----------------

Caddy 一键反代谷歌安装脚本 ,https://github.com/233abc/caddy
-----------

利用 Caddy FileManager扩展 非常简单的部署 私人网盘/在线文件管理器


Caddy FileManager扩展

FileManager 是基于Caddy 的扩展。它提供文件管理界面,可用于 上传/下载/删除/预览和重命名 等该目录中的文件。
  1. 支持 执行 Linux命令。
  2. 支持 上传文件(不支持文件夹)
  3. 支持 管理 多用户权限。
  4. 支持 搜索 文件/文件夹。
  5. 支持 批量 压缩文件下载。
  6. 支持 在线浏览 图片/文本/视频等文件。
  7. 支持 新建/重命名/移动/编辑/删除 文件和文件夹等操作。
  8. 部署简单。
  9. 等等 …
Caddy 文档:https://caddyserver.com/docs/filemanager
Github 项目:https://github.com/hacdias/caddy-filemanager

搜索 文件/文件夹和执行 Linux命令不知道是我姿势错误,还是其他原因,一直没什么反应和效果。。。
前面的几篇教程,我都用到了Caddy,大家应该都能看出来Caddy的易用性,所以本篇教程也很简单,唯一的难点就是 对一些扩展参数的理解,所以我会提供一些示例。

安装 Caddy

注意:Caddy脚本今天更新了 v1.0.1 版本,新增安装时可选 扩展参数的功能,
所以使用旧版本Caddy的,请卸载重装!
 
  1. wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
安装Caddy成功后,继续新建一个用于使用的虚拟主机文件夹,例如 file(可以自己改):
  1. mkdir /usr/local/caddy/www && mkdir /usr/local/caddy/www/file

配置 Caddy

首先,我们先讲一下,FileManager扩展各个参数。
  1. filemanager [baseurl] {
  2. show directory
  3. styles filepath
  4. allow_new [true|false]
  5. allow_edit [true|false]
  6. allow_commands [true|false]
  7. allow_command command
  8. block_command command
  9. allow [url|dotfiles]
  10. allow_r regex
  11. block [url|dotfiles]
  12. block_r regex
  13. }
  1. filemanager 的参数 baseurl 是要流量的文件管理器的URL。默认是 / (比如 /doubi 那么访问入口就是 http://ip/doubi )。
  2. show 的参数 directory 是要浏览的文件管理器的文件夹路径,可以使相对或绝对路径。默认是 ./ (服务器上面文件的绝对或相对路径)。
  3. styles 的参数 filepath 是式样表文件的相对或绝对路径,该文件不需要从网络访问(一般可以无视)。
  4. allow_new 是设置 创建 新文件或新文件夹 的权限开关,默认是允许 true (不允许则是 false)。
  5. allow_edit 是设置 编辑/重命名/删除 文件或文件夹 的权限开关,默认是允许 true (不允许则是 false)。
  6. alow_commands 是设置 执行Linux命令 的权限开关,默认是允许 true (不允许则是 false)。
  7. allow_command 是允许执行的 Linux命令。
  8. block_command 是禁止执行的 Linux命令。
  9. allow_command 和 block_command 的参数 command 是Linux命令,默认运行 git/svn/hg (比如这些命令:cp / mv / rm 等)。
  10. allow 是允许访问特定文件或文件夹,可以使用 dotfiles 来允许访问文件或文件夹。
  11. block 是阻止访问特定文件或文件夹,可以使用 dotfiles 来阻止访问文件或文件夹,被阻止的文件或者文件夹将不会显示在 文件管理界面。
  12. allow_r 和 block_r 是上面命令的扩展,可以使用 正则表达式,正则表达式用于匹配 URL,而不是内部路径文件。
我也只是临时了解了一下这个扩展,试了下,就 allow 和 block 我搞不懂,下面我就要根据我的理解来写出各种示例供大家参考和理解了。

配置示例

以下示例中,虚拟主机文件夹皆为 /usr/local/caddy/www/file
示例域名皆为 toyoo.ml

IP HTTP

本示例是,绑定虚拟主机为IP(即通过IP访问),HTTP协议(80端口)。
不需要用户名和密码即可访问,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 mv
  1. echo ":80 {
  2. root /usr/local/caddy/www/file
  3. timeouts none
  4. gzip
  5. filemanager / {
  6. show /usr/local/caddy/www/file
  7. allow_new true
  8. allow_edit true
  9. allow_commands true
  10. allow_command mv
  11. }
  12. }" > /usr/local/caddy/Caddyfile

域名 HTTP

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。
不需要用户名和密码即可访问,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 mv
  1. echo "http://toyoo.ml {
  2. root /usr/local/caddy/www/file
  3. timeouts none
  4. gzip
  5. filemanager / {
  6. show /usr/local/caddy/www/file
  7. allow_new true
  8. allow_edit true
  9. allow_commands true
  10. allow_command mv
  11. }
  12. }" > /usr/local/caddy/Caddyfile

域名 HTTPS

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTPS协议(443端口)。
不需要用户名和密码即可访问,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 mv
如果你有 SSL证书和密匙的话,把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到 /root 文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:
  1. echo "https://toyoo.ml {
  2. root /usr/local/caddy/www/file
  3. timeouts none
  4. tls /root/xxx.crt /root/xxx.key
  5. gzip
  6. filemanager / {
  7. show /usr/local/caddy/www/file
  8. allow_new true
  9. allow_edit true
  10. allow_commands true
  11. allow_command mv
  12. }
  13. }" > /usr/local/caddy/Caddyfile
如果你没有 SSL证书和密匙,那么你可以这样做:
下面的 xxxx@xxx.xx 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!
  1. echo "https://toyoo.ml {
  2. root /usr/local/caddy/www/file
  3. timeouts none
  4. tls xxxx@xxx.xx
  5. gzip
  6. filemanager / {
  7. show /usr/local/caddy/www/file
  8. allow_new true
  9. allow_edit true
  10. allow_commands true
  11. allow_command mv
  12. }
  13. }" > /usr/local/caddy/Caddyfile

域名 HTTP重定向 HTTPS

本示例是,域名HTTP重定向为HTTPS。
当你是手动指定 SSL证书和密匙 来配置的话,Caddy只会监听 443端口(https),并不会自动设置 80端口(http)的重定向,如果要做重定向的话,可以这样做:
下面的示例代码中,是把 http://toyoo.ml 重定向到了 https://toyoo.ml 。
  1. echo "http://toyoo.ml {
  2. timeouts none
  3. redir https://toyoo.ml{url}
  4. }
  5. https://toyoo.ml {
  6. gzip
  7. tls /root/xxx.crt /root/xxx.key
  8. ...
  9. }" > /usr/local/caddy/Caddyfile

单用户/多用户 说明

这里会简单解释一下 单用户/多用户 配置后,权限的分配问题。
  1. filemanager {
  2. # 在前面是设定 全局配置的,所有用户都会继承全局配置。
  3. allow_commands false # 这个全局配置代表所有用户都无法执行 Linux命令。
  4. allow_new false # 这个全局配置代表所有用户都无法新建 文件或文件夹。
  5. user1:
  6. # 用户名下面就是该用户 user1 的具体配置,只针对该用户。
  7. # 该用户的配置可以覆盖 同名的全局配置。
  8. allow_commands trus # 这个用户配置,会覆盖全局配置,user1 用户允许执行 Linux命令。
  9. # 该用户 user1 无法新建 文件或文件夹。
  10. user2:
  11. # 用户名下面就是该用户 user2 的具体配置,只针对该用户。
  12. # 该用户的配置可以覆盖 同名的全局配置。
  13. allow_new true # 该用户 user2 可以新建 文件或文件夹,覆盖全局配置。
  14. }

设置用户名和密码(单用户)

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。
需要用户名和密码登录,允许新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 cp
因为只有一个用户,所以不需要设置全局配置。
注意:用户名和密码不支持特殊符号,必须使用 数字和字母 [a-z][A-z][0-6]
  1. echo "http://toyoo.ml {
  2. root /usr/local/caddy/www/file
  3. timeouts none
  4. gzip
  5. basicauth / user your-username
  6. filemanager / {
  7. show /usr/local/caddy/www/file
  8. user:
  9. allow_new true
  10. allow_edit true
  11. allow_commands true
  12. allow_command cp
  13. }
  14. }" > /usr/local/caddy/Caddyfile

多用户配置

本示例是,绑定虚拟主机为域名(即通过域名访问),HTTP协议(80端口)。
需要用户名和密码登录,多用户,分别是 admin 和 user 用户。
admin 用户(相当于管理员)允许 允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 cp
user 用户(相当于游客)只允许浏览 文件管理器的内容和信息,其他任何操作都无法执行。
  1. echo "http://toyoo.ml {
  2. root /usr/local/caddy/www/file
  3. timeouts none
  4. gzip
  5. basicauth / admin doubi233
  6. basicauth / user your-username
  7. filemanager / {
  8. show /usr/local/caddy/www/file
  9. allow_commands false
  10. admin:
  11. allow_new true
  12. allow_edit true
  13. allow_commands true
  14. allow_command cp
  15. user:
  16. allow_new false
  17. allow_edit false
  18. }
  19. }" > /usr/local/caddy/Caddyfile
修改完配置后,请重启 Caddy 以生效。
  1. service caddy restart
然后尝试访问 IP或域名 查看是否正常。

FileManager 使用说明

界面介绍

进入文件管理界面后,界面大概如下(可能随版本更新会有差别)。
  1. 顶部中间 是 搜索栏 和 Linux命令执行栏。
  2. 顶部右边 是退出当前用户的按钮(如果设置了用户账号)。
  3. 中部左边 是一个可以返回上一级目录的按钮和当前文件夹名字。
  4. 中部右边 是一系列的操作按钮,在不同情况下会不同,当前是选择文件的情况下。
操作按钮从左到右分别是:
  1. 新窗口 打开文件或下载文件
  2. 移动 文件/文件夹
  3. 重命名 文件/文件夹
  4. 切换 显示状态(方块和列表)
  5. 上传 文件(不支持文件夹)
  6. 压缩 下载(这个是会把你选择的文件/文件夹 压缩到一个文件然后下载,CTRL + 鼠标左键 可以选择多个文件或文件夹)
  7. 查看 当前选中文件的信息(目前还未开放)
下面的自然就是文件和文件夹了。

使用技巧

一些按键有对应的作用:
  1. F1 – 查看帮助
  2. F2 – 重命名 文件/文件夹
  3. DEL – 删除所选 文件/文件夹
  4. ESC – 清除当前选择 或 关闭提示
  5. CTRL + S – 保存下载 文件/文件夹(zip压缩)
  6. CTRL + 鼠标左键 单击 – 选择多个文件/文件夹
  7. 鼠标左键 双击 – 打开文件/文件夹
  8. 鼠标左键 单击 – 选择文件/文件夹
暂时不能用的按键:
  1. Alt + 鼠标左键 单击 – 选择一组文件

Caddy 使用说明

启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
查看Caddy启动日志: tail -f /tmp/caddy.log
Caddy配置文件位置:/usr/local/caddy/Caddyfile

其他说明

启动显示成功,但是实际未运行

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。
你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。
所以这种情况下,你应该去查看启动日志:
  1. tail -f /tmp/caddy.log

单网站/多网站

当然,上面的几个示例,实际上都算是单网站。


最后一句代码都是 }" > /usr/local/caddy/Caddyfile ,也就是清空了 Caddy配置文件,然后再写入了配置信息。
如果你要设置多个网站,那么把最后一句代码改成 }" >> /usr/local/caddy/Caddyfile 即可,注意是把 > 改成 >> ,这样就不会清空原来的配置信息了,而是会把要添加的配置信息加到配置文件最后!

Caddy下载文件频繁中断

可能是因为 Caddy的超时时间机制导致的,可以在配置文件中加入这句代码 timeouts none ,例如这样:
  1. http://toyoo.ml (
  2. timeouts none
  3. root /home/www
  4. ...
  5. )

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。
  1. netstat -lntp
  2. # 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。
不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。
停止 Apache2
  1. service apache2 stop
  2. # 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
  3. kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
取消开机自启动
  1. # 以下代码仅限 Debian/Ubuntu 系统 #
  2. update-rc.d -f apache2 remove
卸载 Apache2
  1. # 以下代码仅限 Debian/Ubuntu 系统 #
  2. apt-get remove --purge apache2
关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。
  1. service caddy start

如果你是 Aria2 教程里过来的,那么请看这个示例和说明

使用这个扩展的时候,请先确定你的caddy安装了这个扩展(2017/03/23 17:50 以前通过我网站其他教程安装的皆没有),否则请卸载重装!

卸载 Caddy:
  1. bash caddy_install.sh uninstall
使用这个扩展,那么就不需要 caddy 自带的列表功能了,所以可以删除参数 browse ,然后如下设置即可。
需要用户名和密码登录,允许 新建/删除/移动/重命名 文件或文件夹等操作,同时允许使用Linux命令 cp
因为只有一个用户,所以不需要设置全局配置,你访问下载的BT文件就可以通过 http://ip或域名/Download/ 来访问和操作了,用户名和密码是 user233 / your-username 。

注意:用户名和密码不支持特殊符号,必须使用 数字和字母 [a-z][A-z][0-6]
  1. echo -e "http://toyoo.ml {
  2. root /usr/local/caddy/www/aria2
  3. timeouts none
  4. gzip
  5. basicauth / user233 your-username
  6. filemanager /Download {
  7. show /usr/local/caddy/www/aria2/Download
  8. user233:
  9. allow_new true
  10. allow_edit true
  11. allow_commands true
  12. }
  13. }" > /usr/local/caddy/Caddyfile

启动 Caddy后,无法访问

这个可能是防火墙的问题,开放防火墙端口即可。
  1. iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
  2. iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT
  3.  
  4. # 删除防火墙规则,内容一样把 -I 换成 -D 就行了:
  5. iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
  6. iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

No comments:

Post a Comment