可以取代宝塔和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服务器系列之二 ...
随机推荐
- [转帖]ARMv8架构概述、相关技术文档以及ARMv8处理器简介
ARMv8架构 文章目录 ARMv8架构 参考文档 ARMv8架构的概述 从32位到64位的变化The changes from 32 bits to 64 bits 1,Larger registe ...
- 解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-Origin Policy),即只允许页面请求同源(相同协议.域名和端口)的资源,当 JavaScript 发起的请求跨越了同源策略, ...
- 手写promise异步状态修改then方法返回来的结果
看看下面这一段代码返回来的是什么??? <body> <script type="text/javascript"> let p = new Promise ...
- go中异常处理流程
在 Go 语言中,panic.recover 和 defer 是用于处理异常情况的关键字.它们通常一起使用来实现对程序错误的处理和恢复. 1. defer 语句 defer 用于在函数返回之前执行一段 ...
- 开启中文智能之旅:探秘超乎想象的 Llama2-Chinese 大模型世界
"开启中文智能之旅:探秘超乎想象的 Llama2-Chinese 大模型世界" 1.国内Llama2最新下载地址 本仓库中的代码示例主要是基于Hugging Face版本参数进行调 ...
- 【深度学习项目二】卷积神经网络LeNet实现minst数字识别
相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...
- C++ LibCurl实现Web隐藏目录扫描
LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP.FTP.SMTP.POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发 ...
- 2.1 CE修改器:精确数值扫描
本关是CE修改器的第一关,用户需要通过 Cheat Engine 工具完成精确扫描值.在这个练习中,需要将一个特定的数值(健康值)改变为 1000.首先,要确保数值类型设置正确,默认的是2字节或4字节 ...
- Python二分法
二分法 尽管二分搜索通常优于顺序搜索,但当n较小时,排序引起的额外开销可能并不划算.实际上应该始终考虑,为了提高搜索效率,额外排序是否值得.如果排序一次后能够搜索多次,那么排序的开销不值一提.然而,对 ...
- rpm安装卸载jdk
安装 rpm -ivh jdk-7-linux-x64.rpm 卸载 先查看安装的包 rpm -qa | grep jdk 卸载 rpm -e --nodeps jdk-1.7.0-fcs.x86_6 ...