可以取代宝塔和Nginx的Web服务器:Caddy
一、安装
官网文章: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的更多相关文章
- Nginx高性能web服务器详解书中概要
一.Nginx功能 1.Nginx服务器以其功能丰富著称于世.它既可以作为HTTP服务器,也可以作为反向代理服务器或者邮件服务器;能够快速响应静态页面(HTML)的请求;支持FastCGI.SSL.V ...
- NGINX高性能Web服务器详解(读书笔记)
原文地址:NGINX高性能Web服务器详解(读书笔记) 作者:夏寥寥 第4章 Nginx服务器的高级配置 4.1 针对IPv4的内核7个参数的配置优化 说明:我们可以将这些内核参数的值追加到Linu ...
- Nginx是什么,有什么优点?为什么选择Nginx做web服务器软件?(经典经典)
1.基础知识 代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客 ...
- Nginx作为web服务器
为什么选择Nginx,nginx有诸多优点: nginx是轻量级web服务器,支持AIO.mmap.event-driven,解决了c10k问题.虚拟主机.基于名字和IP访问.nginx平滑升级 .热 ...
- 《Nginx高性能Web服务器》系列分享专栏
<Nginx高性能Web服务器>系列分享专栏 [作者:Poechant] Nginx是目前最流行的基于BSD-like协议.轻量级.高性能的HTTP服务器.反向代理服务器和电子邮件(SMT ...
- nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之八--nginx日志分析与切割
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之七--nginx反向代理
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之五--实战项目线上nginx多站点配置
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
随机推荐
- [转帖]Java 内存管理
https://www.cnblogs.com/xiaojiesir/p/15590092.html Java 内存模型简称 JMM,全名 Java Memory Model .Java 内存模型 ...
- mysql 获取 今天是今年的第几天, 以及 还有多少天元旦的方法
1. 获取今天是这一年的第几天 select dayofyear(curdate()); 或者是 select dayofyear(now()); 2. 获取还有多少天元旦的方法 select dat ...
- Nginx 按天拆分日志
https://blog.csdn.net/linpxing1/article/details/104059857 ### 关键位置 start if ($time_iso8601 ~ '(\d{4} ...
- Git的使用(二):远程仓库
在github上创建远程仓库 本地创建Git仓库适合自己一个人完成工程,但是实际情况中我们需要其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份.常用的远程仓库就是g ...
- Unity2020或Unity2019安装后无法启动
无法启动Unity 下载国际版的Unity2020,双击Unity.exe无法启动,通过Unity Hub也无法启动 原因 通过查看unity hub的日志发现Unity 启动的时候会检查 lie ...
- 机器学习算法(三):基于horse-colic数据的KNN近邻(k-nearest neighbors)预测分类
机器学习算法(三):基于horse-colic数据的KNN近邻(k-nearest neighbors)预测分类 项目链接参考:https://www.heywhale.com/home/column ...
- 辣鸡 mac 下 pycharm 中代码拖拽的问题
Editor –> General Enable Drag'n'Drop functionality in Editor
- Docker从认识到实践再到底层原理(六-2)|Docker容器操作实例
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- CF526F Pudding Monsters 题解
题目链接:CF 或者 洛谷 析合树真是连续段问题的降智神器 先看下题目的一些特殊性,每行每列恰好有一个棋子.考虑特殊性,\(n \times n\) 的棋盘,那么就该判断是否有 \(n\) 个棋子,容 ...
- 《ASP.NET Core 微服务实战》-- 读书笔记(第11章)
第 11 章 开发实时应用和服务 在本章,我们将讨论"实时"的准确含义,以及在大部分消费者看来应该属于这一范畴的应用类型 接着,我们将探讨 WebSocket,并分析为什么传统的 ...