逗比云还是逃不过被墙的命运,既然如此那以后逗比云也就一直用被墙的旧域名 [softs.wtf] 算了。
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

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

建站资源 Toyo 133评论
本文最后更新于 2018年9月20日 20:10 可能会因为没有更新而失效。如已失效或需要修正,请留言!

Caddy是一个使用 Go语言写的 HTTP Server,开发时间并不长,在性能上或许比不上 Nginx,但是在 上手难度/配置难度 上面简单的不行不行的。

并且 Caddy支持 自动签订Let’s Encrypt SSL证书,什么都不需要你管,只需要提供一个邮箱,剩下的他会自己申请、配置和续约 SSL证书!

注意:如果你要镜像谷歌网站,那么不要用 www.google.com 会被跳转到谷歌的其他子域名,镜像需要用如香港: www.google.com.hk 这样的域名!

部署 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 install http.filemanager

安装Caddy成功后,我们就继续下面的步骤。

配置文件

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

服务器IP 反向代理

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

点击展开 查看更多

域名 反向代理 HTTP

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

点击展开 查看更多

域名 反向代理 HTTPS

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

点击展开 查看更多

HTTP重定向为HTTPS(仅手动指定SSL证书和密匙)

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

点击展开 查看更多

使用说明

启动:/etc/init.d/caddy start

停止:/etc/init.d/caddy stop

重启:/etc/init.d/caddy restart

查看状态:/etc/init.d/caddy status

查看Caddy启动日志: tail -f /tmp/caddy.log

Caddy配置文件位置:/usr/local/caddy/Caddyfile

Caddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/

卸载 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

其他说明

单网站/多网站

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

点击展开 查看更多

网页加密

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

点击展开 查看更多

记录日志

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

点击展开 查看更多

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

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。

你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。

所以这种情况下,你应该去查看启动日志:

tail -f /tmp/caddy.log

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

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

点击展开 查看更多


有什么问题请在下面留言评论。

转载请超链接注明:逗比根据地 » 利用 Caddy 非常简单的部署 反向代理/镜像(支持自签SSL证书)
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (34)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(133)个小伙伴在吐槽
  1. 问一下逗比大佬,caddy 禁止某些ua该怎么写呢?谷歌了半天也瞎写了半天都不对
    九四2018-10-12 23:07 (6天前)回复
    • 不清楚咧,我用 Caddy 也只是用一些简单的功能。。
      Toyo2018-10-13 11:11 (5天前)回复
      • 好吧,谢谢大佬了
        九四2018-10-13 22:35 (5天前)回复
  2. 记录一下,启动caddy时提示 
    Activating privacy features... 2018/09/08 11:59:09 get directory at 'https://acme-v02.api.letsencrypt.org/directory': failed to get json "https://acme-v02.api.letsencrypt.org/directory": Get https://acme-v02.api.letsencrypt.org/directory: x509: failed to load system roots and no roots provided
    
    
    那么需要更新一下系统:
    apt-get -y update
    apt-get install -y ca-certificates
    
    再启动就OK了
    
    TY2018-09-08 23:53 回复
  3. [email protected]:~# /etc/init.d/caddy status
    [信息] Caddy 未运行 !
    [email protected]:~# tail -f /tmp/caddy.log
    2018/08/21 23:23:26 error inspecting server blocks: parse //go.xxx.ml{: invalid character "{" in host name
    2018/08/21 23:26:46 error inspecting server blocks: parse //go.xxx.ml{: invalid character "{" in host name
      无法启动服务,日志提示这些,麻烦问一下什么意思?谢谢!
    显示设置了一个,成功了,后来卸载caddy后重装,就无法成功了。
    
    mix2018-08-21 23:37 回复
    • 看起来应该是配置文件格式错误。
      Toyo2018-08-22 00:46 回复
      • 应该怎么解决呢?
        mix2018-08-26 08:21 回复
        • 你要贴出配置文件我才能看出问题呀。
          Toyo2018-08-26 13:09 回复
  4. 我的VPS上情况是:手动指定证书的时候,caddy只监听了2015端口,需要手动指定端口,自动申请证书时会监听443和80端口
    Zvonimir2018-06-15 01:42 回复
  5. 404 Site *******.tk is not served on this interface,请问第一个镜像的网站正常,第二个网址打开是这个提示,哪里的问题?附上添加第二个网址(带加密)的指令,烦请指正 echo "*******.tk { gzip basicauth / root 654321 tls ***@163.com proxy / https://www.google.com }" > /usr/local/caddy/Caddyfile
    ogr14322018-05-17 19:08 回复
    • 反向代理 https://www.google.com.hk 这类地区谷歌域名看看。
      Toyo2018-05-18 16:28 回复
  6. 请问,同时使用proxy和filemanager有什么要注意的吗?我的Caddyfile是这样的 www.someweb.com { tls [email protected] gzip proxy / https://my.blogspot.com { without /3SmDhN6j2zXLqsbs without /data } proxy /3SmDhN6j2zXLqsbs 127.0.0.1:65123 { without /3SmDhN6j2zXLqsbs websocket } filemanager /data /usr/local/caddy/filemanager { database /usr/local/caddy/filemanager.db } } www.someweb.com/data 实际上是访问 https://my.blogspot.com/data 然后告诉我没有这个页面。
    CrazyPeace2018-05-11 16:30 回复
    • 那你尝试这样做,分成两个虚拟主机配置。
      https://www.someweb.com {
      	tls [email protected]
      	gzip
      	proxy / https://my.blogspot.com {
      		without /3SmDhN6j2zXLqsbs
      		without /data
      	}
      	proxy /3SmDhN6j2zXLqsbs 127.0.0.1:65123 {
      		without /3SmDhN6j2zXLqsbs
      		websocket
      	}
      }
      https://www.someweb.com/date {
      	tls [email protected]
      	gzip
      	timeouts none
      	filemanager /data /usr/local/caddy/filemanager {
      		database /usr/local/caddy/filemanager.db
      	}
      }
      
      Toyo2018-05-13 13:16 回复
  7. dalao你好,我还是不算很懂代多个网站。例如我想同时代goo歌和goo歌学术应该怎么写?
    kenshin2018-04-07 23:51 回复
  8. 自动申请的ssl证书的储存路径我怎么打不开
    zzz2018-04-05 13:31 回复
  9. 反代是不是都不能登录?
    zzz2018-02-22 12:32 回复
    • 反向代理只能替换一个域名,如果目标网站有多个域名链接,则会出问题。
      Toyo2018-02-22 21:49 回复
  10. Toyo大佬,为什么我照着你的配置来弄显示的是无法正常运作(域名 目前无法处理此请求。)呢?系统是CentOS 6.5(x64)...
    Soys2018-02-02 23:29 回复
  11. 谢谢Toyo大佬的教程,请问能发一个反代维基百科的配置文件么,我按照谷歌的方式试了试,发现css样式没有镜像过来
    momowuwen2018-01-15 09:59 回复
    • 该教程只能替换一个域名,不能多域名替换,如果一个网站里有多个域名(比如图片CDN、CSS JS静态文件CDN等)就没办法了。
      Toyo2018-01-15 15:11 回复
  12. 请问下Toyo大佬,如果我已经用caddy伪装ssr流量到1.com,我还能用1.com/google来镜像吗? 另外,/root/.caddy/acme/acme-v01.api.letsencrypt.org/sites/1.com/1.com.crt和.key写入caddyfile之后caddy找不到,这要怎么写? 感谢大佬
    fwing2017-12-31 19:04 回复
    • Caddy 申请的SSL证书你不能手动调用,必须让Caddy自己配置,你只需要配置文件写上你的 邮箱即可,Caddy自动申请SSL证书并配置安装和续期,你不需要任何操作。
      Toyo2018-01-01 09:44 回复
  13. Hi,大佬你好。我有个问题,我的站点底下已经有一个caddy filemanager 假设是在https://domain,现在想要配置一个反向代理。我在Caddyfile中配置如下: domain/g { gzip proxy / https://www.google.com } 这样写我发现打开google后 除了www.google.com打开正确,其他www.google.com/xxx 都会定向到domain/xxx而不是domain/g/xxx,导致这些xxx下的资源都无法打开。 然后,我测试用g.domain做反向代理,Caddyfile如下配置: g.domain { gzip proxy / https://www.google.com } 然后,我再ns服务器中把g.domain指向ip,打开g.domain一直提示找不到ip. 用站长工具ping测试却能找到ip。 求解!谢谢大佬
    David2017-12-27 14:51 回复
    • 关于第一个配置,你写的有问题,应该这样写:
      domain/g {
      gzip
      proxy /g https://www.google.com
      }
      # 或者:
      domain {
      gzip
      proxy /g https://www.google.com
      }
      # 具体是第一个写法还是第二个写法还是都有效我也忘了,你两个都试试。
      
      关于第二个配置,我不清楚你说的打开 [打开g.domain一直提示找不到ip] 是什么意思。
      Toyo2017-12-30 18:24 回复
      • 我测试g.domain作为我的反代。我在NS服务器中将这个g.domain添加A记录。ping可以ping到。但是 在浏览器打开提示dns找不到ip地址...不知道为什么 Caddyfile配置为:g.domain { gzip proxy / https://www.google.com }
        David2018-01-01 19:24 回复
      • 我试了domain/g打开提示404
        David2018-01-01 19:40 回复
      • 现在情况是 只有我在我的主站www.domain.tk底下加{gzip proxy / www.google.com 才能正确的打开主页 但是 一旦当我在这个反代的谷歌提交搜索请求时,他就会重新将网址指向到我www.domain.tk/s 这个file manager。逗比大佬可以试一试打开我的www.domain.tk这个页面.
        David2018-01-01 19:49 回复
      • 我重新注册了一个域名 专用与反代 问题都解决了....
        David2018-01-01 20:33 回复
  14. 逗比大佬,你好,我尝试用caddy来反代我的网站,先用了cloudflare来加速和使用它的https。 我用的一键脚本,完成后配置文件做了如下设置: https://123.com { gzip proxy / http://155.155.1.1555:33333/01site/ tls { dns cloudflare } } 结果,启动失败。不用https和cloudflare是成功启动反代的。我谷歌了一些东西。 https://caddyserver.com/docs/automatic-https https://caddy.community/t/looking-for-an-working-example-for-automatic-https-in-the-documentation/1072 好像是要加什么环境变量什么的,最后我用了以下的命令才能正常启动,https和cloudflare成功启动反代。 [email protected] CLOUDFLARE_API_KEY=xxxxxxxxxx /usr/local/caddy/caddy -conf="/usr/local/caddy/Caddyfile" 但是这样不好守护进程,也很不方便,要什么设置才能加入你的脚本去,可以使用service caddy start等方便的命令才进行管理呢?谢谢
    san2017-12-18 20:28 回复
    • 打开Caddy服务管理脚本文件( vi /etc/init.d/caddy ),在 38行(Debian/Ubuntu)或 40行(CentOS) 找到启动代码
      # 找到这一行,然后按 I键 进入编辑模式,就能正常添加删减文字了
      nohup "$BIN" --conf="$CONF" &>/tmp/caddy.log &
      
      #尝试吧环境变量加到前面看看:
      nohup [email protected] CLOUDFLARE_API_KEY=xxxxxxxxxx "$BIN" --conf="$CONF" &>/tmp/caddy.log &
      
      #如果修改后启动失败则尝试这样改:
      ulimit -n 51200
      [email protected] CLOUDFLARE_API_KEY=xxxxxxxxxx
      nohup "$BIN" --conf="$CONF" &>/tmp/caddy.log &
      sleep 2s
      
      修改完后,按ESC键 退出编辑模式,然后输入 :wq 回车就保存并退出vi编辑器了(注意冒号,注意小写)。
      Toyo2017-12-19 13:05 回复
  15. Toyo大大,请问caddy能完全反代plex吗?或者有什么其他软件能实现完全反代私人网盘,从而实现在线观看自己网盘视频不需要挂$$(大盘鸡直连国内网络不太好)
    crazi2017-12-09 02:37 回复
    • 如果被反向代理的网站没有其他任何域名,只有主域名 xxx.xx 那么 Caddy 就能完全反向代理,如果还有其他子域名(例如图片什么的单独搞了个域名)那就没办法一起反向代理替换域名了。
      Toyo2017-12-09 12:37 回复
      • 反代后网页访问速度好像有提升~不过好像不能加速视频?(只有一个域名),用plex可以选视频分辨率在线观看。反代或不反代可以流畅看的视频分辨率一样。如果挂$$看plex的视频,可以将视频分辨率选到顶配流畅观看
        crazi2017-12-12 19:29 回复
  16. 大佬……我按照教程反代了google.com.hk但是搜索的时候会被提示: 我们的系统检测到您的计算机网络中存在异常流量。请稍后重新发送请求。
    Re2017-12-04 08:44 回复
    • 这是谷歌的反机器人措施,镜像从某种程度上来说也算机器人操作。
      如果你频繁访问就会提示这个,或者说你这个服务器IP本身就被谷歌拉黑了(或IP段),也会提示这个。
      Toyo2017-12-04 18:32 回复
  17. 今天用了一下,发现一个悲催的问题,比如用A域名去镜像B域名,打开A域名后,网站的目录图片之类的URL还是B域名的,貌似无法自动替换。。。
    王大锤2017-12-03 15:03 回复
    • A域名是 xxx.com B域名是 yyy.com ,那么镜像后,只会替换 yyy.com 域名为 xxx.com ,其他的都不会替换。
      Toyo2017-12-04 18:50 回复
  18. 为什么复制粘贴echo "https://toyoo.ml { gzip tls [email protected] proxy / https://www.baidu.com }" > /usr/local/caddy/Caddyfile 什么也不显示呢
    dong2017-12-02 16:32 回复
    • 听不明白,无法判断。
      Toyo2017-12-03 10:19 回复
  19. 大佬你好,我按你的教程反向代理Google,结果自动跳到https://www.google.ca/,请问如何解决?
    oha2017-12-01 21:33 回复
    • 要镜像谷歌网站,那么不要用 www.google.com 会被跳转到谷歌的其他子域名(因为这个域名会根据你的服务器位置去自动跳转到对应国家的谷歌域名),镜像需要用如香港: www.google.com.hk 这样的域名!
      Toyo2017-12-02 13:08 回复
  20. 你好,首先表示对你的成果表示祝贺和感谢 其次 提两个问题, 使用caddy搭建镜像时,如何将网站上原有的链接替换为镜像网站的链接
    leo2017-12-01 17:58 回复
    • 貌似只能把 被镜像域名替换为镜像域名,Caddy官网没找到其他类似的相关设置。
      Toyo2017-12-02 13:17 回复
      • 大概就是这意思,但是caddy似乎没有和nginx的filter之类的参数
        leo2017-12-03 10:47 回复
        • Caddy 还不够大众,没有Nginx那样那么多人开发各种扩展。
          Toyo2017-12-03 11:10 回复
  21. 大牛你好,我的服务器you多个IP,我要怎么这是呢? 我要怎么制定某个IP去反向代理,谢谢,还望解答,感激不尽。
    xiaohutok2017-11-13 11:29 回复
    • 本教程中示例的域名写成要指定监听的IP即可。
      Toyo2017-11-13 14:34 回复
  22. 我添加了自动申请ssl的指令进去,然后应该执行什么命令申请?
    chx8182017-10-30 12:45 回复
    • 不需要管,只要相关配置正常,并且你的域名已经设置解析为你当前服务器的IP,那么Caddy会自动申请、配置。
      Toyo2017-10-30 17:07 回复
  23. 你没讲启动命令和默认端口
    coldark2017-10-27 22:24 回复
    • 启动命令没讲?https://doub.io/jzzy-2/#使用说明
      默认端口取决于你的设置,如果没有指定端口,那么HTTP协议就是80,HTTPS协议就是443,这些是常识。
      Toyo2017-10-28 08:28 回复
      • 。。。额,我搜了并确认了下,caddy默认端口是2015,需要以caddy -port 443 或 setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy来指定端口,但初始安装的时候端口都是关的,无法知道是否正常运行. 我在重新全新安装后,过了半小时,再使用service caddy restart service caddy status 表示正常但 netstat -lntp 里面只用了22端口,2015,443,80都没用
        coldark2017-10-28 09:27 回复
        • 当Caddy配置文件不存在或者配置文件内容为空的时候,启动Caddy后 就会以 ip:2015 为虚拟主机,以当前文件夹为虚拟主机文件夹来运行。
          如果你配置文件内配置了 HTTP虚拟主机,则会监听 80 端口,如果配置了 HTTPS协议的虚拟主机 则会监听 443端口,如果没指定协议(直接写域名)则会监听 80 443端口。也可以单独指定端口,例如配置文件虚拟主机:http://xxx.xxx:2333 ,就是2333端口,Caddy就会自动监听2333端口。
          Toyo2017-10-28 09:33 回复
          • 我配置的是 gg.baidu.com { gzip tls [email protected] proxy / https://www.google.com }
            coldark2017-10-28 20:31 回复
          • service caddy start启动后查看日志tail -f /tmp/caddy.log, 显示: Activating privacy features... done. https://gg.baidu.com:2015
            coldark2017-10-28 20:34 回复
          • 因为我看官方文档里的第一排都是没用http或者https,所有我没加
            coldark2017-10-28 20:35 回复
            • 不加HTTP协议,则会自动监听80 443端口并做HTTPS跳转。
              Toyo2017-10-28 23:36 回复
              • 我没加http协议,他监听的是2015,并不是监听80/443,就是我上面所显示的日志。 当我用https时,它的443端口是开的,但访问的时候是直接域名跳转,并不能中转guge
                coldark2017-10-29 05:29 回复
              • 不监听80端口解决,使用http重定向https,但是反向代理变成域名跳转还是没法解决,之前用nginx反向代理也出现这个问题。
                coldark2017-10-29 06:04 回复
                • 尝试使用其他谷歌域名例如 www.google.com.hk
                  Toyo2017-10-29 11:22 回复
                  • 换域名可以了,非常感谢。(原来是反镜像的锅,估计nginx的问题也是这样,难怪我一直反不了。 对了
                    coldark2017-10-29 19:06 回复
                    • 对了,请问我反代wordpress时点击后跳转到原网址,请问能不能跳转还是反代后的网址?
                      coldark2017-10-30 20:26
                    • 正常情况下,反代后域名已经替换,你说点击网页内的链接条转回原网址?可能是这个链接的域名未替换,或者这个网页有反镜像措施。
                      Toyo2017-10-31 09:37
          • 如果第一行是https://gg.baidu.com的话,那caddy只打开了443端口,并且访问https://gg.baidu.com时他会跳转到www.google.com,而不是中转
            coldark2017-10-28 20:40 回复
            • 这个问题解决方法是lets获得域名所用的域名和邮箱是有次数限制的,一旦申请过多会被拒绝,大家可以查看下log来排查这个错误。
              coldark2017-10-29 05:34 回复
            • 不能中转的问题请看上面的解答。
              coldark2017-10-29 05:37 回复
      • 搞清楚了,是我域名申请次数太多了。但现在启动后都是 https://qqqqqq:2015,我在想办法解决,9:27那两个方法不行
        coldark2017-10-28 09:44 回复
  24. 安装了,并运行了域名 反向代理 HTTPS,但是不能使用,并且重启后Caddyfile里的内容消失了,腾讯云的
    coldark2017-10-27 21:49 回复
    • 重启后 配置文件的内容清空?这么神奇?那我不清楚了,自行联系Caddy官方反馈BUG。
      Toyo2017-10-28 08:39 回复
      • 这个问题是我看另一个教程,它的配置文件是放在临时文件夹中,大家可以排除下这个问题。
        coldark2017-10-29 05:36 回复
  25. 装了caddy,但是basicauth指令not found是什么情况 :sad:
    sudo2017-10-17 15:58 回复
    • basicauth指令?这是Caddy的配置文件内容,而不是Linux代码,是写入配置文件的,而不是在SSH中执行的代码。
      Toyo2017-10-17 17:17 回复
  26. 用反代测试了下,80端口被墙封了,仅仅存活了一天,泪目 怎么不被墙啊
    mzt2017-10-11 16:59 回复
  27. 按照教程安装一件脚本后添加域名反代回车没反应,启动:service caddy start提示启动失败。求解决,谢谢。
    反代2017-08-30 10:07 回复
    • 请提供日志内容。
      Toyo2017-08-30 14:47 回复
  28. 证书无发申请是怎么回事 日志里面 Activating privacy features...2017/08/29 06:17:56 [myssf.tk] failed to get certificate: acme: Error 400 - urn:acme:error:connection - DNS problem: SERVFAIL looking up CAA for myssf.tk Error Detail: Validation for myssf.tk:443 Resolved to:
    yexing2017-08-29 18:24 回复
    • Caddy申请Let's SSL证书前,首先VPS要空出80端口,然后 你的域名也要做好解析(做完解析,可能需要过一段时间 国外Let's SSL的服务器才能更新到DNS解析记录)。你这个报错就是我括号里说的,要么你没做域名DNS解析,要么 Let's SSL 的服务器还没更新到最新的域名DNS解析(特别如果用的是国内DNS托管解析)。
      Toyo2017-08-29 20:16 回复
    • 已经解决 要用国外的DNS解析商做解析才行
      ufo868172017-08-29 20:33 回复
  29. 推荐一个虚拟主机也能用的网页代理,就一个文件,改名后放进虚拟主机目录里就能用,简直不能再方便。谷歌和维基百科测试正常。没有教程写快要死的时候可以用它充数哈哈。https://github.com/joshdick/miniProxy
    Walsh Iscute2017-08-27 04:42 回复
    • 这类网页代理程序有缺陷,特征还是较明显的,经常流量大的情况下,容易被封(看地区)。
      Toyo2017-08-27 06:53 回复
  30. 老大,反代wiki的时候域名会自动跳转到原始域名,这是为什么呀?
    toyo's fans2017-08-21 21:59 回复
    • 可能是wiki做了反镜像,这个要一点一点排除文件内的代码,很麻烦。
      Toyo2017-08-21 22:01 回复
  31. 成功搭建了一个youtube镜像,网站可以正常访问,但视频无法播放,一直显示在加载。可能是什么问题?
    小伙子2017-07-27 17:28 回复
    • 因为youtube的网站域名和视频是分开的,视频是CDN分发的,有几十上百个CDN域名。
      Toyo2017-07-28 00:06 回复
      • 谢谢回复!简单了解了一下什么是CDN。在使用caddy之前还使用过您博客里推荐的Zmirror,当时搭建成功后YouTube的视频是可以看的,这两天发现不行了,这又可能是什么原因呢?
        小伙子2017-07-28 12:05 回复
        • 不清楚,自从写过教程后,我就没再用过 Zmirror 了,你可以去Github询问作者。
          Toyo2017-07-28 12:41 回复
  32. 这个可以和LNMP共用吗?
    KCP2017-06-04 10:21 回复
    • 那端口需要区分开,否则80 443 端口冲突。
      Toyo2017-06-04 11:33 回复
  33. 另外toyo又想到一个疑问,因为自己的域名已经解析到vps主机ip上了,也就是说如果加密自己在公司使用,域名别人很可能看一眼就记住了,加密后别人又无法登录,那么怎么避免别人由于ping这个域名得到我的vps地址而带来的潜在攻击行为? 例如隐藏vps的IP? 还是有什么别的思路?谢谢~
    ogr14322017-06-01 23:19 回复
    • CDN自己了解。
      Toyo2017-06-02 01:09 回复
      • cdn在我没有vps时 用7ghost建镜像站时用过,但原因是国外免费虚机访问速度慢所以用cdn加速,如果现在换了vps做主机再加节点是不是丧失了vps访问速度的优势?
        ogr14322017-06-02 14:27 回复
        • cdn就是多服务器 反向代理+负载均衡+缓存 用的,至于是否速度比如直连,自行测试,不同CDN等因素都不一样。CDN主要用于 加速和 保护服务器源IP,避免被攻击。
          Toyo2017-06-02 23:06 回复
          • cdn隐藏主机IP也弄好了;教程里关于访问加密的机制,是输入一次密码以后同一IP/主机码访问都不用再输入密码 还是 更换IP或者访问客户主机就需要再次输入密码? 有没有什么代码可以实现强制要求每次无论是否更换ip或者访问客户主机码都必须再次输入密码? 谢谢!
            ogr14322017-06-06 22:51 回复
            • 无论是Nginx Apache还是Caddy,他们的用户名和密码机制,都是浏览器写入cookie,会有一个失效时间,如果你换个浏览器或者清理缓存下次在访问就会需要再次输入用户名和密码了。
              “有没有什么代码可以实现强制要求每次无论是否更换ip或者访问客户主机码都必须再次输入密码? 谢谢!”答案:无。
              Toyo2017-06-07 02:38 回复
              • toyo出了点问题:我第一个域名解析到vps后,镜像好了然后用cloudflare隐藏了ip加密访问都没问题, 换了两个域名同样的操作cloudflare添加好了,域名都打不开,不用cloudflare还用默认ns又可以访问了,域名应该没被Q;无法加载的提示:net::ERR_SSL_PROTOCOL_ERROR
                ogr14322017-06-17 21:39 回复
                • :net::ERR_SSL_PROTOCOL_ERROR 这个错误还是SSL证书配置有问题,SSL网站在使用CDN后,需要在 CDN里做一些配置啥的(直接访问源站IP正常,访问CDN的报错),否则SSL证书可能会报错,但是cloudflare我没怎么用过,不清楚。
                  Toyo2017-06-17 23:04 回复
  34. 如果你没有 SSL证书和密匙,那么你可以这样做: 一次性复制以下全部代码,并粘贴到SSH中执行: echo "https://toyoo.ml { gzip tls [email protected] proxy / https://www.baidu.com }" > /usr/local/caddy/Caddyfile --------------------------------------------------------------------- 问下toyo:代码第一行 你用的域名前面加了https: 但是域名解析完成后并没有绑定主机上传网页文件也就没有网站 只有一个域名是吗? 这时候为什么要加https呢? 我ping自己的域名返回vps的主机ip了就是解析完,那么第一行代码的域名我是加http: 还是https: ? 另外你的教程分反代http和反代https网站,后者又分有ssl和没有ssl,我理解前面的http或https大部分原站自动跳转https(如谷歌)也就是并不需要我做操作只要区分即可,那么后面的是否有ssl不是应该说的自己的网站吗? 网站未上传只有域名也分http和https? 逻辑有点混乱没搞明白~
    ogr14322017-06-01 23:00 回复
    • http就是只允许访问http,https就是只允许https。
      反向代理不需要网页文件,自行了解原理。
      【另外你的教程分反代http和反代https网站,后者又分有ssl和没有ssl】什么意思?https必须有SSL证书,否则就是http。
      看起来你没有一点基础知识,HTTP和HTTPS,与SSL等关系完全不理解,说都说不清。
      无法理解,就按教程一次次尝试,自己摸索。
      Toyo2017-06-02 01:13 回复
      • 设置完成生效了,但是我想你把http https以及ssl又说一遍的原因还是我对问题的表述不清楚,这是我的问题,打了太多字确实看着累直接过了
        ogr14322017-06-02 14:37 回复
  35. 你好,请问有没有镜像youtube的教程?
    Ivan2017-04-17 14:56 回复
  36. 请问支持直接泛解析吗,比如mm.mm ==> *.123.com
    Ashe2017-04-11 15:54 回复
  37. 默认是以root运行caddy的吧?能以www-data用户来运行吗?
    shinkansen2017-04-09 21:33 回复
    • 不清楚,详细的自己去Caddy官方文档查看。
      Toyo2017-04-09 22:42 回复
  38. 感谢你的教程!有些不明白的地方还希望Toyo大指点。如果我想反代一个网站有多个地址,比如wikipedia,有https://en.wikipedia.org、https://zh.wikipedia.org……我手里只有一个顶级域名,需要分别解析不同二级域名后对应反代不同的网址吗?比如我有域名abc.com,A记录加en反代https://en.wikipedia.org,zh反代https://zh.wikipedia.org……有没有更简便的方法。另,反代twitter、facebook这种网站应该如何解决?我是新手,期待大大的解答。感谢!
    mzxwt2017-04-04 11:57 回复
    • 如果你有个 666.com 域名,想要完全反代使用了大量外链CDN之类的网站(例如 233.com),那么需要把他的外链域名 全部反代,比如:
      233.com => 666.com
      cdn.233.com => cdn.666.com
      img.233.com => img.666.com
      
      然后还要使用caddy的一个参数来替换你反代 233.com 里面的 cdn. img.的域名 为自己反代的 cdn. img. 域名,不过那个参数我还没研究过。。
      Toyo2017-04-04 13:34 回复
      • 谢谢解答。看来还是用zmirror的一键脚本比较方便。零基础,不容易。再次感谢!
        mzxwt2017-04-06 18:07 回复
  39. 感谢教程,英文不好看官网看得迷糊。 请问怎么能让caddy服务开机后自动启动? 另外,我访问 我开放的是http://ip:80 结果主业就能访问,但是点进去的副页面就不行,例如 http://ip/aboutme.html,请问应该如何设置...谢谢
    热血天堂2017-03-25 14:17 回复
    • 用我的脚本安装后,默认就是注册成服务,开机自启动的。如果没有启动请查看启动日志 tail -f /tmp/caddy.log
      副页面不行,提示的是什么?按教程默认应该是没问题的,毕竟我也一直在用。
      Toyo2017-03-25 15:36 回复
  40. 再写个利用caddy搭建博客教程吧! :arrow:
    Qqq2017-03-23 19:15 回复
    • 如果是 Caddy+PHP+Mysql 的话,手动配置挺麻烦的。
      Toyo2017-03-23 19:28 回复
  41. 我看了下官方文档,有个filter插件,用来做关键字替换的,可以替换gg相关。。。可惜我一直部署不成功。https://caddyserver.com/docs/filter
    AmzCN2017-03-20 20:32 回复
  42. 可以代理Youtube么。。。。
    额@去2017-03-19 00:47 回复
    • 可以是可以,但是只镜像youtube.com是不行的,还要把youtube的视频源的域名全都镜像。
      Toyo2017-03-19 10:15 回复
  43. 按教程反向代理谷歌以后caddy监听的是tcp6,这正常吗?输入自己的域名可以进入谷歌,但一搜索就跳到了ipv6.google.com, 然后打不开了,小白不太懂这是怎么回事
    Create2017-03-18 18:57 回复
    • 这些HTTP服务器 基本都是,如果有ipv6就 ipv4+ipv6 都监听,如果只有ipv4就只监听ipv4。
      要么设置只监听ipv4(我也不知道能不能,说明文档里没找到),要么禁用服务器的ipv6。
      Toyo2017-03-18 19:04 回复
      • 不知道为什么,反向代理https://www.google.com,总是跳到ipv6.google.com,然后就无法连接……但是代理https://scholar.google.com正常
        create2017-03-18 22:07 回复
        • 这些HTTP服务器 基本都是,如果有ipv6就 ipv4+ipv6 都监听,如果只有ipv4就只监听ipv4。
          要么设置只监听ipv4(我也不知道能不能,说明文档里没找到),要么禁用服务器的ipv6。
          Toyo2017-03-18 23:12 回复
          • 我错了,表生气 :sad:
            create2017-03-19 09:07 回复
  44. Server file no newer than local file “caddy_install.sh” -- not retrieving. caddy_install.sh: line 39: perl: command not found [错误] Caddy 最新版本获取失败 ! 出现这种情况?centos6 64位系统,跟系统有关系吗
    wang2017-03-18 15:18 回复
    • 精简到这种程度?perl都没装?绝大部分linux系统都默认安装的,这些linux基础的命令都精简了,着实没见过。。。
      尝试 yum install perl 看看有没有这个软件包,如果没有建议手动安装caddy 或者 更换系统算了
      Toyo2017-03-18 15:59 回复
    • 感谢,已解决。注:搬瓦工新出的kvm
      wang2017-03-19 00:46 回复
      • 速度如何?
        西部老大2017-03-22 17:24 回复
  45. 话说要是域名被墙了 挂代理还能打开吗
    南琴浪2017-03-14 10:25 回复
    • 哥们你这是在试探大逗的底线啊~ :smile:
      ogr14322017-03-14 10:45 回复
    • 当然可以,墙了也只是 国内DNS污染。
      Toyo2017-03-14 11:01 回复
  46. 不管是nginx还是caddy,如果用自己的vps绑定了域名反代谷歌,无论是否有ssl证书在,一旦网站域名被ban,vps会不会受牵连?有什么使用不当的后果?
    ogr14322017-03-13 18:14 回复
    • 域名反向代理谷歌,目前都只是被墙发现后,吧域名DNS污染了。
      不影响VPS本身,就像我的网站,出问题的只是域名,VPS不用更换。
      SSL证书是必须加的,否则可能几天就墙了,即使是HTTPS,流量越大,被墙的几率越高,所以建议自己或者少量人使用,同时购买垃圾域名,墙了就更换。
      Toyo2017-03-13 19:16 回复
      • 嗯,之前用7ghost做的几个反向代理,都做了ssl加密,如果没有https访问我也基本不敢分享给别人用;现在手里有几个免费域名一会去试一下这个教程~
        ogr14322017-03-13 22:04 回复
  47. 虽然我完全看不懂,可是不妨碍我全部看完了。
    大人看的片叫大片2017-03-13 17:48 回复
  48. 这个可以有
    kurokutomoko2017-03-13 17:45 回复