封面

经常上网的朋友会知道一个关键词:ws+tls+cdn。而之前我一直想用nginx加某个神奇的软件实现,但是一直是“PR_END_OF_FILE_ERROR”,而老杨(@cyhour)推荐的一键脚本,网传有后门。再结合实际看看,屏蔽了相关网站的访问,故而,弃用。但是Nginx一直玩不转,便只能依样画葫芦,才用Caddy进行反代。

首先,我使用的是Debian,另外请确保服务器安装了Curl,以下操作我直接以root用户进行的。

进行安装:

curl https://getcaddy.com | bash -s personal

安装完成后,开始配置文件。想知道文件安装在哪?用以下命令就行:

which caddy

配置开始:

//创建配置文件放到 /etc/caddy 目录
mkdir /etc/caddy
//创建配置文件
touch /etc/caddy/Caddyfile
//设置相应权限
chown -R root:www-data /etc/caddy
//设置证书目录
mkdir /etc/ssl/caddy
//设置相应权限
chown -R www-data:root /etc/ssl/caddy
chmod 0770 /etc/ssl/caddy
//如果你打算建站,那就可以考虑配置网站目录
mkdir /home/www
chown www-data:www-data /home/www

接下来,从官方仓库中下载 caddy 的 systemctl 守护脚本并对其挂载启动。

curl -s  https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service  -o /etc/systemd/system/caddy.service
systemctl daemon-reload
systemctl enable caddy.service
systemctl status caddy.service

到这里基本完成,我们可以配置网站了。

//打开我们的配置文件
vi /etc/caddy/Caddyfile

这里我用的是vim,如果不熟悉可以用nano 。(不建议用vim-tiny,那个实在是太奇怪了。)

文件配置如下:(以一个简单的websocket加静态网站配置)

www.mhcf.net
{
  log /var/log/caddy/access.log
  tls www@mhcf.net
  proxy /caressr 127.0.0.1:10000 {
    websocket
    header_upstream -Origin
  }
  root /home/www/
}

当然,我们需要用于上网的话,也就是开头说的,那么可以参考如下配置:

abc.xyz {
    gzip
    timeouts none
    proxy / https://abc.com {
        except /a
    }
    proxy /a 127.0.0.1:10000 {
        without /a
        websocket
    }
}

abc.xyz为你绑定的域名,abc.com为你想伪装的网站域名。而 /a 则是分流路径。127.0.0.1:10000 是要转发的地方。

完成设置后,重启Caddy服务即可。

如果多个域名,在后面继续写就可以了。如下示例:

abc.xyz{

}
def.one{

}

(至于多域名可以不可以,别问我,我还没成功。)

至于我为什么要用Caddy而不是Nginx,除了开头说的没折腾成功之外,最大的好处是Caddy可以让网站自动支持SSL,不用我自己申请证书去弄。

那梦幻辰风目前是什么环境?

Nginx。

全文完 [ 喜欢本文,打赏作者! ]