一、安装

官网文章:https://caddyserver.com/docs/install

在左边选择:Install

我的服务器是Ubuntu,所以选第二行

我的服务器是Ubuntu,官方给出的就是5行命令:

日志里面有个红色的error,表示安装后没有启动caddy的服务。

二、首次运行

看了很多文章,感觉都没有把我当小白。自己折腾了几个小时,总算搞明白了。

1、如果80端口和443端口被其它程序(比如Nginx)占用了,得先卸载Nginx。

查看443端口被谁占用了:

root@web005:~# sudo lsof -i :443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 685 root 29u IPv4 20924 0t0 TCP *:https (LISTEN)
nginx 3316062 www 29u IPv4 20924 0t0 TCP *:https (LISTEN)

查看80端口被谁占用了:

root@web005:~# sudo lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 685 root 28u IPv4 20923 0t0 TCP *:http (LISTEN)
AliYunDun 2857398 root 10u IPv4 176627908 0t0 TCP web005:59910->100.100.30.25:http (ESTABLISHED)
nginx 3316062 www 28u IPv4 20923 0t0 TCP *:http (LISTEN)

在宝塔里卸载Nginx:

重新查看80和443端口的占用情况:

2、caddy只是一个命令行,安装好了caddy就是说linux能支持caddy这个命令了。

3、caddy可以不需要我们建立配置文件,直接用一行命令就可以启动caddy。比如我们把自己备案的域名www.abc123.com的解析指向了安装caddy的服务器,反向代理到本地的http端口:

官网的反向代理文档在这里:

我的命令是:

reverse-proxy --from www.abc123.com --to http://cloudtest.vicp.net:32684

执行如下:

(因为我的域名是虚构的,无法指向到安装caddy的这个服务器,所以命令执行的时候,在自动申请SSL证书的步骤时候报了很多错误)

4、caddy最好的方式,进阶,就是在你的某个目录下,放置一个名为Caddyfile的文件(没有扩展名),在文件里编排好内容,然后执行caddy run即可启动;

在Linux服务器上,自己规划的目录里,用vi编辑器,新建一个文件

vi Caddyfile

内容如下:

tls后面的参数是用于申请证书的自己的电子邮件

www.abc123.com {
reverse_proxy http://cloudtest.vicp.net:32684
tls test@qq.com
}

然后让caddy重载配置文件,在保存Caddyfile的目录里,启动caddy

caddy reload
caddy start

题外话:第一次执行caddy reload的时候,实际上是报错了:

因为我的Caddyfile多了一个大括号导致的:

5、caddy的启动,有两个命令,一个是caddy run,一个是caddy start,两者的区别就是后者是守护进程的方式启动。

三、为什么说取代宝塔和Nginx?

对于Linux的菜鸟来说,很多服务器上安装宝塔,只是为了安装和使用Nginx。因为用宝塔,可以在web界面上管理nginx,配置一堆的网站和维护SSL证书。

Caddy对反向代理的配置极其简单,如上所述;

Caddy最大的厉害之处,是自动向Let’s Encrypt申请证书、续签证书,自动配置全站https。

另外Caddy在反向代理WebSocket的长连接的配置也是内置的、极其简单。

一句话:Caddy让SSL和反向代理变得极其简单了。

四、常见命令

1、自动修复Caddyfile

caddy fmt --overwrite

有一次修改了Caddyfile,保存后执行caddy reload,报错,说文档的第11行有语法错误。用肉眼怎么也看不出错误来。于是按照报错的提示,执行了上述命令。错误就被自动改正了。

可以取代宝塔和Nginx的Web服务器:Caddy的更多相关文章

  1. Nginx高性能web服务器详解书中概要

    一.Nginx功能 1.Nginx服务器以其功能丰富著称于世.它既可以作为HTTP服务器,也可以作为反向代理服务器或者邮件服务器;能够快速响应静态页面(HTML)的请求;支持FastCGI.SSL.V ...

  2. NGINX高性能Web服务器详解(读书笔记)

    原文地址:NGINX高性能Web服务器详解(读书笔记) 作者:夏寥寥 第4章  Nginx服务器的高级配置 4.1 针对IPv4的内核7个参数的配置优化 说明:我们可以将这些内核参数的值追加到Linu ...

  3. Nginx是什么,有什么优点?为什么选择Nginx做web服务器软件?(经典经典)

    1.基础知识 代理服务器:    一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器.    一个完整的代理请求过程为:客 ...

  4. Nginx作为web服务器

    为什么选择Nginx,nginx有诸多优点: nginx是轻量级web服务器,支持AIO.mmap.event-driven,解决了c10k问题.虚拟主机.基于名字和IP访问.nginx平滑升级 .热 ...

  5. 《Nginx高性能Web服务器》系列分享专栏

    <Nginx高性能Web服务器>系列分享专栏 [作者:Poechant] Nginx是目前最流行的基于BSD-like协议.轻量级.高性能的HTTP服务器.反向代理服务器和电子邮件(SMT ...

  6. nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  7. nginx高性能WEB服务器系列之八--nginx日志分析与切割

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  8. nginx高性能WEB服务器系列之七--nginx反向代理

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  9. nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  10. nginx高性能WEB服务器系列之五--实战项目线上nginx多站点配置

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

随机推荐

  1. [转帖]Oracle入门精读28-字符集 AL32UTF8与UTF8

    字符(Character) 字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 字符编码(Character Encoding) 是一套法则,使用该法则能够对自然语言的字符的一个 ...

  2. github-keydb 知识

    https://github.com/Snapchat/KeyDB KeyDB is now a part of Snap Inc! Check out the announcement here R ...

  3. 混沌测试平台 Chaos Mesh

    混沌测试平台 Chaos Mesh Chaos Mesh 是PingCap团队研发的一款用于测试kubernetes环境的工具.通过人为地在集群中注入故障来检测集群对故障的处理以及恢复能力.更详细信息 ...

  4. 什么是根号?什么是 log ?

    生日悖论是 \(O(\sqrt{n})\) 随机序列 LIS 是 \(O(\sqrt{n})\) 随机 \(\pm1\) 序列前缀和最大绝对值是 \(O(\sqrt{n})\) 证明 随机 Prufe ...

  5. vue组件上绑定原生事件

    将原生事件绑定在组件上 .native 修饰符: 子组件 <template> <div class="demo"> <h2>我是子组件< ...

  6. 震惊p div 标签 可以编辑高度随内容的编辑而发生变化

    震惊p标签可以编辑高度随内容的编辑而发生变化### 1==>只可编辑,粘贴复制字段长度不正常 <p contenteditable="true" >这是一个可编辑 ...

  7. gin启动https支持

    gin是一个使用Go语言开发的Web框架,具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,支持中间件等. 在工作中有时候需要支持https服务,gin可以通过中间件的方式来提供对https的支 ...

  8. 从零开始配置 vim(15)——状态栏配置

    vim 下侧有一个状态栏,会显示当前打开的文件等一系列内容,只是我们很少去关注它.而且原生的vim也支持对状态栏进行自定义.这篇文章主要介绍如何自定义状态栏 设置状态栏 我们可以采用 set stat ...

  9. 14.4 Socket 双向数据通信

    所谓双向数据传输指的是客户端与服务端之间可以无差异的实现数据交互,此类功能实现的核心原理是通过创建CreateThread()函数多线程分别接收和发送数据包,这样一旦套接字被建立则两者都可以异步发送消 ...

  10. Docker从认识到实践再到底层原理(二-3)|LXC容器

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...