A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

使用 Caddy 作为 Web 服务器的常规配置




前言

过去,我们常常使用 Apache、nginx、lighttpd 甚至会手工编写一个静态服务器去托管我们的网页文件、去做反向代理、做重定向、做路由映射。这些流行的服务器软件非常成熟和强大。
成熟和强大,必然带来一个问题,首先就是发布时间很早,会有很多遗留问题。比如规范的变化、配置文件的复杂性、性能上的不足、功能上的缺陷等等。
那么,随着互联网的技术的更新迭代,新的技术替代老的技术和思路已经成为一种趋势,更多的新技术运用到老的服务器软件上,就显得有点笨拙和力不从心了。
近2年来,有一款非常强大、配置简洁、使用简单的 Web 服务器出现了,那就是 Caddy。
Caddy 是一款开源的社区免费使用的服务器软件,主要用作静态文件托管,当然,反向代理、重定向等功能都很完备配置非常简洁。


下载

在 Github 的代码仓库

https://github.com/caddyserver/caddy/releases

可以找到 Caddy 的版本发布,Release 中就有对应不同操作系统的压缩包,我们选择

caddy_v1.0.1_linux_amd64.tar.gz

解压到 /usr/local/bin 即可。

基本配置

快速开始

[Shell] 纯文本查看 复制代码
caddy


这样,就会绑定本地 http://127.0.0.1:2015 端口,直接访问即可去获取 index.html

常用配置

端口绑定、HTTP/2、路径配置、开启 TLS、GZIP 压缩、日志记录
[Shell] 纯文本查看 复制代码
:8080 {
        push
        root /web/www
        tls [url=mailto:mail@itcast.cn]mail@itcast.cn[/url]
        gzip {
                level 9
        }
        log /tmp/caddy/caddy.log
}


这样,就绑定在了8080端口,且自动配置 HTTP/2 和安全传输,根路径在 /web/www,GZIP 压缩设置到了最高级别,log 记录在临时路径下。

反向代理 API + 负载均衡

[Shell] 纯文本查看 复制代码
:8080 {
        proxy /api web1.local:80 web2.local:90 web3.local:100 {
    policy round_robin
  }
}


这样,将请求 /api 的地址全部分发到了 3 个服务器,且采用 round_robin 形式进行分发请求,实现负载均衡。


重定向请求

[Shell] 纯文本查看 复制代码
redir 301 {
        /sign  https://{host}{uri}
}


这样,将 /sign 带有登陆地址的地方,强制走向 https 与常规静态文件隔开。

结语

Caddy 目前才推出正式版本,肯定有很多不完善的地方,但是已经能应付很多开发场景,主要还是配置轻松,和运行良好,同学们期待吧。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马