超越Nginx的Web服务器,GitHub上42k+星的神器
发表时间: 2022-09-01 00:02
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐是一个使用GO开发的可扩展Web服务器——Caddy。
Caddy是一个强大且可扩展的Web服务器、代理服务器。Caddy使用Go语言开发,支持HTTP/2IPv6、Markdown、WebSockets、FastCGI、模板等等,目前已经超过42k star。
Debian、Ubuntu、Raspbian:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-httpscurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.listsudo apt updatesudo apt install caddy
Fedora 或 RHEL/CentOS 8:
dnf install 'dnf-command(copr)'dnf copr enable @caddy/caddydnf install caddy
RHEL/CentOS 7:
yum install yum-plugin-copryum copr enable @caddy/caddyyum install caddy
运行在2015端口并输出 Hello, world!
启动Caddy:
$caddy start
添加一个配置:
$curl localhost:2019/load \ -H "Content-Type: application/json" \ -d @- << EOF { "apps": { "http": { "servers": { "hello": { "listen": [":2015"], "routes": [ { "handle": [{ "handler": "static_response", "body": "Hello, world!" }] } ] } } } } }EOF
浏览器加载:
$curl localhost:2015Hello, world!
运行以下命令:
caddy reverse-proxy --to 127.0.0.1:9000
如果没有权限,可以绑定较高端口代理:
caddy reverse-proxy --from :2016 --to 127.0.0.1:9000
在Caddy目录中创建一个Caddyfile并包含以下内容:
localhostreverse_proxy 127.0.0.1:9000
然后,从同一目录运行:
caddy run
运行后,可以发送请求到 https://localhost 查看是否正常工作。
更改代理地址也很容易:
:2016reverse_proxy 127.0.0.1:9000
更改完成后,更新启动Caddy即可在localhost:2016访问代理。
caddy大部分配置都基于独创的Caddyfile完成,以下是它的结构:
关键词:
—END—
开源协议:Apache2.0
开源地址:
https://github.com/caddyserver/caddy