一、安装

官网文章: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. [转帖]队列深度对IO性能的影响

    https://www.modb.pro/db/43710 几年前一个客户的Oracle数据库经常HANG,老白帮他分析了一下,结论是存储老化,性能不足以支撑现有业务了.正好用户手头有个华为S5600 ...

  2. 【DS】P9062 [Ynoi2002] Adaptive Hsearch&Lsearch(区间最近点对)

    Problem Link 给定平面上 \(n\) 个点,\(Q\) 次询问编号在 \([l,r]\) 内的点的最近点对.\(n,Q\le 2.5\times 10^5\). 技巧:平面网格化 乱搞都是 ...

  3. elementUI日期选择器,对日期格式进行处理

    使用elementUI日期选择器中,获取不同格式的时间 <el-form-item label="归零时间:" prop="zeroing"> &l ...

  4. elementui更改Slider 滑块颜色样式

    <div class="con-slider"> <el-slider :disabled="disabledFlag" @change=&q ...

  5. Linux挂载新磁盘到根目录

    1.添加磁盘到需要挂载的机器上2.lsblk查看硬盘挂载情况,sdb,sdc为我新挂载的磁盘 3.fdisk -l查看挂载之前的分区情况, 4.为新硬盘创建分区 fdisk /dev/sdb,终端会提 ...

  6. 跟着文档学Fabric:获取通道配置

    原文在这里. 1. 获取通道配置 peer channel fetch config config_block.pb -o $ORDERER_CONTAINER -c $CH_NAME --tls - ...

  7. 8.4 C++ 运算符重载

    C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...

  8. 设计模式-1 单例模式 SingletonPattern

    23种设计模式 一.创建型 1,AbstractFactory(抽象工厂,对象模式) 2,Builder(建造者,对象模式) 3,Factory Method(工厂方法,类创模式) 4,Prototy ...

  9. SpringCloud-03-Nacos配置管理

    Nacos配置管理 原理图: 1.统一配置管理 ① 在Nacos中添加配置信息 ② 在弹出表单中填写配置信息 ③ 配置获取的步骤*(原理) ④ 引入Nacos的配置管理客户端依赖 <!--nac ...

  10. Oracle多租户架构之如何快速创建一个PDB

    Oracle自从12c版本开始引入多租户的架构,整个管理理念也发生了很大的变化. 比如之前再小的业务只要选择了Oracle,DBA都会选择新建一套独立的数据库,因为传统的架构只能在schema级别作区 ...