Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Debian 9 安装配置 Caddy Server

Debian 9 安装配置 Caddy Server

作者头像
Debian中国
发布于 2018-12-20 08:03:38
发布于 2018-12-20 08:03:38
3.8K00
代码可运行
举报
文章被收录于专栏:Debian中国Debian中国
运行总次数:0
代码可运行

Caddy 是一个用 Golang 开发的高效 Web Server,相比 Nginx,它的配置和使用要简单很多,能自动开启 HTTPS、并且支持 HTTP/2 和 QUIC。

下载安装 Caddy

首先去 Download Caddy 选择你需要的插件,然后复制下方的 One-step installer script (bash),例如我的是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ curl https://getcaddy.com | bash -s
http.cache,http.cors,http.expires,http.filemanager,http.git,http.ipfilter,http.minify,http.nobots,http.ratelimit,http.realip,tls.dns.cloudflare

安装完后输入 which caddy,不出意外的话会输出 /usr/local/bin/caddy

至此,安装完毕,但是目前它不会开机自启,只是简单地把二进制文件下载下来,所以下一步要注册服务。

注册服务到Systemd

这里我使用的是官方提供的脚本 caddy.service,其他系统也可以在这里找到相应的脚本。

(adsbygoogle = window.adsbygoogle || []).push({});

把这个文件下载到 /etc/systemd/system/ 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

创建所需目录,我图方便没有修改脚本直接使用默认值了,如果有特殊需求,可以自己更改目录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir /etc/caddy
sudo chown -R root:www-data /etc/caddy
sudo touch /etc/caddy/Caddyfile

sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

sudo mkdir /var/www
sudo chown www-data:www-data /var/www

上面创建了三个目录,/etc/caddy 用了存放 Caddy 的配置文件,/etc/ssl/caddy 存放证书,/var/www 是默认的网站目录。

接着,重新加载 systemd daemon,让配置生效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl daemon-reload

让 Caddy 开机自启:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable caddy.service

至此,Caddy 已经成功注册服务,并能够开机自动运行了。

配置Caddy

这部分的内容我不打算详细记录,主要是官方文档已经写的很详细了。下面是我的配置,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
example.com {
  proxy / 127.0.0.1:9001 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
  }

  gzip
  header / -Server
  header / Strict-Transport-Security "max-age=31536000;"
  tls user@example.com {
    protocols tls1.0 tls1.2
    dns cloudflare
  }
}

如果要使用 DNS 的方式认证域名的话,需要设置环境变量,修改 /etc/systemd/system/caddy.service ,加入环境变量,我使用的是 CloudFlare 的 DNS,所以我需要添加 CLOUDFLARE_EMAIL 和 CLOUDFLARE_API_KEY ,其他 DNS 看这里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Service]
...
Environment=CADDYPATH=/etc/ssl/caddy
+ Environment=CLOUDFLARE_EMAIL=xxx
+ Environment=CLOUDFLARE_API_KEY=xxx
...

写完配置后输入 sudo systemctl start caddy.service 启动 Caddy。输入 journalctl --boot -u caddy.service 可以查看日志。

启用 QUIC

关于 QUIC 的介绍,可以看一下这篇文章,一句话概况呢就是减少 TLS 握手次数,加快网站速度。

修改 /etc/systemd/system/caddy.service ,在 ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp 后面加上 -quic ,即

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp -quic

然后重新加载 Systemd,并重启 Caddy

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl daemon-reload && sudo systemctl restart caddy.service

同时,别忘了给主机开放 443 (UDP) 端口。

目前 QUIC 只有 Chrome 支持,并且需要手动开启(默认只有白名单域名启用)。访问 chrome://flags/#enable-quic,切换为 Enabled 即可。开启后,重启 Chrome,访问网站,通过 Chrome DevTools – Security 可以看到协议已经是 QUIC 了。

关于性能

Caddy 是 Go 写的,性能方面是稍落后于 Nginx 的,但其实对于小站来说,这一点性能差距是可以忽略的,毕竟 You Are Not Google 。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go每日一库之131:caddy(轻量web服务器)
一直以来,我都是使用 Nginx 作为 Web 服务器,但是配置可以说是非常麻烦了。每次我要新开一个域名,都要先使用 acme.sh 签发 SSL 证书,然后再写配置,大概要花上 5 分钟的时间。曾经想过写个脚本自动完成这些工作,但是苦于对 Linux 的了解不多,也就作罢了。 最近看到了 Caddy,一个用 Go 写的 Web 服务器,它的配置简洁,同时能自动开启 HTTPS、支持 HTTP/2 && QUIC,完全符合我的需求啊,研究一番,就在我的服务器部署了,本文作一个简单记录。 我的操作系统是 Debian Jessie ,理论上只要是带有 Systemd 的系统都适用本文。
luckpunk
2023/09/30
5940
Nginx再见!Caddy你好!Caddy 无需配置自动添加 HTTPS,我真的爱了!
下面是我在我的服务器上使用 Caddy 部署静态博客,并实现自动 HTTPS 配置的过程!
萌萌哒草头将军
2025/03/29
2260
Nginx再见!Caddy你好!Caddy 无需配置自动添加 HTTPS,我真的爱了!
Caddy:安装、使用和配置指南
今天我们要聊聊的是一个非常酷的开源 HTTP/2 web 服务器——Caddy。Caddy 是用 Go 语言编写的,它的配置文件简洁明了,功能强大,使得 HTTP 服务的部署变得更加简单。Caddy 的最大特点是默认启用 HTTPS。在这篇文章中,我将向你介绍如何安装和使用 Caddy,以及如何通过 Caddyfile 和 API 来配置 Caddy。
TechHarmony
2024/04/12
5.8K0
一款二次元的Web多人在线网络聊天系统:Fiora安装及使用
说明:Fiora是一款偏二次元的Web多人在线聊天应用,使用Node.js、Mongodb、Socket.io和React编写,使用起来还行,挺简洁的,这里水个搭建教程,有兴趣的可以玩玩。
星泽V社
2022/05/30
1.1K0
一款二次元的Web多人在线网络聊天系统:Fiora安装及使用
TopDocs:一款美观实用的在线文档编辑系统,支持Markdown语法
说明:最近博主对文档程序小有需求,找了很久发现都是单页,而且还不支持移动端,不是很理想,所以萌JJ大雕就专门花了半天时间,给博主写了一个,该文档程序基于graphql、nuxtjs、mongodb、keystonejs的实时在线文档编辑系统,可用作各种在线文档编辑和展示,支持markdown语法,对移动端特别友好,这里就开源分享出来,给对文档有需求的人。
子润先生
2021/05/28
1K0
使用 Caddy 替代 Nginx
Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx。相较于 Nginx 来说,Caddy 的配置简单了很多,而且默认启用了 https,更加的安全。
EmoryHuang
2022/10/31
2.6K0
使用 Caddy 替代 Nginx
如何在CentOS 7上托管Caddy的网站
Caddy是一个易于使用的新Web服务器。它非常简单,可以用作快速开发服务器,并且足够强大,可以在生产环境中使用。
一步
2018/08/13
1.8K0
The unit caddy.service has entered the 'failed' state with result 'exit-code'
修改 service(vim /usr/lib/systemd/system/caddy.service) 服务配置文件,取消注释以下三行:
卓越笔记
2023/02/18
2K0
CentOS 8 安装 Caddy Web服务器
在本文中,将在 CentOS 8 中安装 Caddy Web 服务器并在 Caddy 上配置 HTTP网站。 Caddy有一下功能:
用户9236362
2021/11/30
1.2K0
使用腾讯云配置小程序Python开发环境
之所以选腾讯云的原因很简单,那就是便宜,选用成都区,最低配置每月只需29¥。在 腾讯云 官网注册登录就可以直接购买服务器了。服务器系统我选择的是 ubuntu。
goodspeed
2020/12/22
7.4K0
使用腾讯云配置小程序Python开发环境
Debian-12和Ubuntu-20.04编译nginx
注意这里有可能由于网络原因导致golang模块无法拉取而报错,我们进行代理添加,本文使用的阿里云代理:
峨眉山市雅铭网络
2023/11/01
7940
个人网盘分享·Alist的安装配置和使用
对我来说,它可以让我基于自己的服务器自由的分享自己的文件给亲人或者朋友,而不是依赖第三方平台,但是它强大也强大在可以依赖各个云盘实现共享而不占用自己服务器,官方支持的云盘如下:
我不是程序员110
2022/10/28
25.6K1
个人网盘分享·Alist的安装配置和使用
一款开源、轻巧且功能齐全的跨平台网盘程序:蓝眼云盘
说明:最近发现了一个不错的网盘程序蓝眼云盘,该程序后端使用golang开发,前端使用vue套件开发,而且开源免费,基本上目前除了离线下载外,其它功能都有,同时也支持多用户,超级管理员可以对用户进行权限,文件管理等,外观也蛮好看,安装包仅10M左右,可以同时在Windows、Linux、Mac OS操作系统中运行。作者更新也很频繁,功能也会越来越多,这里就大概说下安装方法。
子润先生
2021/06/01
2.9K0
一个支持多用户的在线书签管理系统:My-BookMark
明:之前一直想找个书签系统,然后最近发现了个My-BookMark,用了下还不错,总算不用经常重复在不同电脑或者浏览器上备份书签了,该工具可以整合多个浏览器上的书签,对于快速搜索某个时间段的书签起到便捷式的作用,有效的避免了你在重装系统和更换浏览器上对书签的备份,无法整合分类和在其他地方上网时无法查看自己的书签!无论你在何时何地都可以查看搜索自己收藏的书签数据,安装也是很简单的,有需求的可以玩玩。
子润先生
2021/05/29
1.3K0
使用Firefox Send搭建一个临时文件分享系统
说明:Firefox Send好像一两年前博主就分享过,是Firefox推出的一個全新的临时文件分享系统,具体查看→传送门,不过貌似代码开源了,也有几个小伙伴搭建的时候遇到了点问题,要博主发个教程,这里就水一下手动搭建和Docker搭建。
子润先生
2021/05/29
1.6K0
如何在PHP中使用 Caddy2 协同服务
Caddy Server 是一个模块化的现代Web服务器平台,支持自动HTTPS证书,QUIC和HTTP/2,Zstd和Brotli压缩,以及各种现代功能以及经典的Web服务器功能,如可配置的虚拟主机,URL重写和重定向,反向复制等。
Tinywan
2024/02/21
4230
如何在PHP中使用 Caddy2 协同服务
Debian 环境中安装git服务器 Gogs(下)
在本教程中,我们将使用 Gogs 在 Debian 9 上按步骤指导您安装和配置您的私有 Git 服务器。这篇教程中涵盖了如何在 Debian Stretch 上安装 Go 语言、PostgreSQL 和安装并且配置 Nginx 网页服务器作为 Go 应用的反向代理的细节内容。
Debian中国
2018/12/21
8160
Caddy 2 的安装与配置
Caddy是一个Go编写的Web服务器,类似于Nginx,Caddy提供了更加强大的功能,相较于Nginx来说使用Caddy有如下优势:
BinGo_Blog
2022/11/01
5.2K0
centos7安装配置prometheus
centos7安装配置prometheus 更新系统&禁用selinux yum update -y sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux #reboot 下载prometheus安装包 去官网下载地址下载相关软件包:https://prometheus.io/download/ # 执行下面命令下载 wget https://github.com/prometheus/prometheus/rele
shaonbean
2019/08/29
2.9K0
一个比 Nginx 功能更强大的 Web 服务器
Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随着 v2 版本发布 Caddy 已经可以作为中小型站点 Web 服务器的另一个选择;相较于 Nginx 来说使用 Caddy 的优势如下:
民工哥
2021/02/23
1.5K0
一个比 Nginx 功能更强大的 Web 服务器
推荐阅读
相关推荐
Go每日一库之131:caddy(轻量web服务器)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验