整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Web服务器-Caddy

Web服务器-Caddy

addy 是一个支持 HTTP/2 的跨平台 Web 服务器, 使用和配置都非常简单。Caddy 支持 HTTP/2, IPv6, Markdown, WebSockets, FastCGI, 模板等等。

具有自动 HTTPS 的快速、多平台 Web 服务器

https://github.com/caddyserver/caddy

中文文档:

https://dengxiaolong.com/caddy/zh/

1. 制作Caddyfile

Caddyfile是一个配置Caddy的文本文件。它被设计成易于打字,不易出错。

Caddyfile的第一行始终是要服务的站点的地址。

你可以定义任意多的站点;Caddy支持虚拟主机和许多其他功能!

matt.life   # 你的站点地址

ext .html   # 美化网址
errors error.log {       # 错误日志
    404 error-404.html   # 自定义错误页面
}

# PHP后端
fastcgi /blog localhost:9000 php

# API负载均衡
proxy /api localhost:5001 localhost:5002

2. 运行Caddy

瞧!你所要做的就是运行caddy。如果你的Caddyfile在同一个文件夹中,它会被自动加载。对于生产站点,HTTPS是默认开启的!

$ caddy
Activating privacy features... done.
http://matt.life
https://matt.life

打开浏览器

输入你的站点地址,查看它的运行情况。在线站点被重定向到HTTPS。

Caddy非常适合在家里或工作时开发网站,并服务于生产环境。赶紧尝试一下!

、Caddy2中文官方资料:【点击进入】

添加图片注释,不超过 140 字(可选)

2、关闭防火墙

sudo ufw disable

3、安装Caddy2

  • 安装必要的软件包
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
  • 获取Caddy的安全密钥
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
  • 从指定的 URL 下载 Caddy 的官方 GPG 密钥文件
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
  • 更新软件包列表
sudo apt update
  • 安装Caddy2
sudo apt install caddy

4、测试:创建静态页面

  • 进入/etc/caddy,打开Caddyfile,清空文件内容,然后输入下面的代码
解析好的域名 {

    root * /var/www/html

    file_server

}
  • 创建静态
mkdir -p /var/www/html
  • 进入/var/www/html文件夹并创建文件index.html
  • 打开index.html,输入下面的代码
<!DOCTYPE html>
<html>
<body>
<h1>奶油之家</h1>
<p>欢迎来到我们的网站</p>
</body>
</html>

5、Caddy2相关命令

# 启动Caddy2
systemctl start caddy

# 开机自启
systemctl enable caddy

# 重启Caddy2
systemctl restart caddy

# 停止Caddy2
systemctl stop caddy

# 重载配置Caddy配置文件(修改配置文件后执行)
systemctl reload caddy

# 查看Caddy2运行状态
systemctl status caddy

6、Caddy2的应用

  • 设置反代
解析好的域名 {

    reverse_proxy 127.0.0.1:8080   #这里输入你想反代的服务器IP和端口

    encode gzip

}
  • 设置重定向

Nginx一样,Caddy中rewrite指令的主要功能是实现URL地址重写。在同一个block中,rewrite指令书写安全,因为重写规则是互斥且组合的,重复的规则,只执行第一个匹配的重写。

语法

rewrite [<matcher>] <to>
  • matcher是适配器,可选参数,不指定则为请求的任意URL。
  • to是重写后的URL。

举例

重写任意请求到foo.html

rewrite * /foo.html

把API请求替换为query字符串a=b

rewrite /api/* ?a=b

保留API请求中原有的query字符串并添加新的query键值对a=b

rewrite /api/* ?{query}&a=b

改变任意请求,保留原有query字符串并把原请求path赋值给p参数

rewrite * /index.php?{query}&p={path}

相似指令

还有如下指令也有重写的作用,但作用和效果有所不同:

  • uri 可以匹配前缀、后缀、和替换字符串。
  • try_files 检查文件是否存在并重写请求。