【玩转Lighthouse】利用Caddy搭建轻量级Web服务器

  快应用备案     |      2023-08-27
【玩转Lighthouse】利用Caddy搭建轻量级Web服务器

这篇文章我很早就想写了,但是一直没有机会。顺便趁这个机会写一篇灯塔论文。这里就不讲如何购买Lighthouse服务了。去腾讯云官网秒杀页面购买即可。这里就不做过多介绍了。本文的系统镜像为Debian11.1。其他系统环境请不要参考本教程(PS:尤其是初学者~)

关于Caddy

一个简单、轻量、新手友好的Web服务器,甚至可以自动为你部署SSL证书,对新手来说比较友好。

PS:不过我现在不用了。当前版本的Caddy 在HTTP/3 支持方面存在一些问题,所以我现在使用Nginx-quic。当我有机会登录Lighthouse 服务器时,我会再写一篇教程

绑定密钥

与密码相比,密钥的安全系数更高,所以我在每次使用前都会绑定密钥,防止服务器被意外爆破,登录Lighthouse控制台

购买后登录Lighthouse控制台,在key处选择创建密钥:

地区请选择与购买的轻量级应用服务器相同的地区。只需填写您喜欢的名称,然后单击“确定”即可。此时,密钥会自动下载。请妥善保管钥匙。

点击服务器找到您刚刚购买的服务器,点击进入管理页面

单击管理密钥对:

单击“绑定密钥对”并选择刚刚创建的密钥

单击“下一步”并勾选“同意强制关闭”进行确认

钥匙绑定在这里~

SSH登录Web服务器

这里我使用的是Mobaxterm,点击蓝色字体去官网下载免费版本并安装

创建链接

参考图片步骤填写相关信息后点击确定

点击刚才创建的链接登录,会提示“login as”,输入root并回车

看到下面的一堆就说明已经登录完成了

更新系统

登录后,先不要急于安装Caddy,而是先更新系统及相关软件包

apt updateapt Upgrade 复制更新过程中会出现提示,要求你确认是否更新,按Y回车,可能会出现两次

一般来说,目前的官网镜像更新时都会升级内核版本,所以更新后记得重启~

重启复制输入命令重启后会提示链接断开,按R重新连接

重启后输入以下命令清理不需要的包:

apt autoremove copy会提示你确认操作,按Y进入

安装Caddy

配置软件源

安装必要的依赖项:

apt install -y debian-keyring debian-archive-keyring apt-transport-https 复制安装密钥和镜像源:

卷曲-1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asccurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list 复制上次更新的软件源并安装Caddy:

复制apt update apt install caddy 看到如下提示即可完成:

配置Caddy

创建网站及证书目录

创建证书目录

其实Caddy可以自动申请证书,但是如果你想使用自己的证书,需要为证书创建一个文件夹~

cd /etc/sslmkdir caddy copy:

创建网站目录

cd /mkdir wwwcd wwwmkdir wwwrootmkdir log copy 其中wwwroot用于放置网站根目录,log用于存放网站日志。

赋予权限

sudo chown -R www-data:root /wwwsudo chmod 0777 /www/log 复制:

编辑Caddy配置文件

Caddy 配置文件Caddyfile 位于/etc/caddy 中,可以下载并编辑后再上传或直接使用vim编辑取决于个人喜好。 Mobaxterm软件的左侧实际上是一个文件浏览器,您可以在其中浏览、上传和下载文件。以下是示例文件。更多使用方法请参考官方文档:

//这里的配置是用来支持HTTP3的,如果不需要可以删除{servers {protocol {experimental_http3}}}//一个常见的网站例子,将r2wind.com替换成你喜欢的域名r2wind.com {///这里配置网站根目录,请上传页面文件到网站根目录* /www/wwwroot/r2wind.com/public //配置SSL证书路径,如果不配置,Caddy会自动申请并为你匹配tls /etc/ssl/caddy/r2wind.cn.crt /etc/ssl/caddy/r2wind.cn.key //自定义错误页面文件,如果不需要删除,可以handle_errors { rewrite * /{http.error.status_code} .htmlfile_server} //日志存储路径,如果不需要保存访问日志,可以删除日志{output file /www/log/r2wind_com.log} //启用Gzip压缩,如果不需要则删除encode gzipfile_server //用于添加响应头header { //禁用客户端的MIME类型嗅探行为,如果不需要请删除X-content-type-tptions nosniff//拒绝嵌入其他网站,如果不需要,请删除X-frame-options DENY //HSTS 响应头,如果不需要,请删除Strict-Transport-Security max-age=63072000;includeSubDomains;preload} }//反向代理配置yjz.hk { //指定代理网页访问地址https://xx.r2w.devreverse_proxy https://xx.r2w. dev { //指定请求域名hk.r2w.devheader_up Host {hk.r2w.dev}} //以下配置上面已经介绍过,这里不再重复tls /etc/ssl/caddy/r2wind .cn .crt /etc/ssl/caddy/r2wind.cn.keyhandle_errors {rewrite * /{http.error.status_code}.htmlfile_server}log {输出文件/www/log/yjz_hk.log}编码gzipfile_serverheader {X-content-类型- tptions nosniffx-xss-protection:1; mode=blockStrict-Transport-Security max-age=63072000;includeSubDomains;preload}}//重定向示例配置www.yjz.hk { //指定重定向的网站地址并携带相关参数redir https://yjz.hk{uri}}//多域名重定向示例配置,多个域名记得用‘,’分隔,输入域名前记得逗号后面加一个空格dnstest.cc, www.dnstest.cc , r2wind.net, www. r2wind.net {redir https://r2wind.cn}//多域名网站的示例配置,与普通网站配置相同,只是多了几个域名r2wind.com、r2wind.net、r2wind.cn { //这里配置网站根目录,请将页面文件上传到网站根目录* /www/wwwroot/r2wind.com/public //配置SSL证书路径,如果不配置,Caddy会自动为您申请并匹配,注意:这里最好不要指定SSL证书,除非您的证书是多域的tls /etc/ssl/caddy/r2wind.cn.crt /etc/ssl/caddy/r2wind .cn.key //自定义错误页面文件,如果不需要删除可以handle_errors {rewrite * /{http.error.status_code}.htmlfile_server} //日志存储路径,如果不需要要保存访问日志,可以删除日志{output file /www/log/r2wind_com.log } //启用Gzip 压缩,如果不需要则删除编码gzipfile_server //用于添加响应头header { //禁用MIME 类型嗅探行为客户端,如果不需要,请删除X-content-type-tptions nosniff //拒绝嵌入其他网站,如果不需要,请删除X-frame-options DENY //HSTS 响应头,如果不需要不需要,请删除Strict-Transport-Security max-age=63072000;includeSubDomains;preload}} 复制:

重新加载配置文件

systemctl reload Caddy copy 如果配置正确,回车后不会出现任何提示

效果展示

这里就不显示了哈哈哈,直接上传网站文件到网站根目录,修改配置文件并重新加载Caddy,然后配置域名解析就可以访问对应的域名了。搜索建站教程就有很多,这里不再赘述~

最后要注意的是:使用大陆地区服务器请先完成ICP备案!!!