Caddy2学习笔记——Caddy2的安装、部署和编译小白教程

news2025/7/10 9:27:17

个人环境概述

  1. 本人拥有一个国内云服务商的云主机和一个备案好的域名,希望通过caddy2来作为web服务器。
  2. 我的云主机是公网ip,地址为:43.126.100.78;我备案好的域名是:hotgirl.com。后面的文章都以上述的ip和域名来进行讲解。
  3. 域名hotgirl.com已经通过云服务商的域名解析功能,解析到43.126.100.78。

Caddy2的部署

一、安装

1.云主机安装

这里推荐去官网介绍的界面复制粘贴安装命令,地址是:官网安装命令

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

上面的命令就是安装命令,安装结束之后,可以通过“caddy version”查看是否安装成功

# 查看caddy是否安装成功
caddy version

2.常用命令

安装结束后要手动启动。

# 开机自启
systemctl enable caddy

# 启动caddy2
systemctl start caddy

# 停止caddy2
systemctl stop caddy

# 重载配置caddy配置文件(修改配置文件后执行)
systemctl reload caddy

# 查看caddy运行状态
systemctl status caddy

3.为云主机提供web服务

Caddy2的编辑默认的配置文件:/etc/caddy/Caddyfile ,每次修改配置文件后,使用 systemctl reload caddy 重载配置。
静态网页配置如下:

hotgirl.com {
    root * /home/www/mywebsite
    file_server
    tls your@email.com
}

然后在你的云主机/home/www/mywebsite路径下,写一个简单的html,这样一个简易的网站就做好了。并且自动帮你申领ssl证书,自动续期,你就说强不强大。
hotgirl.com

Caddy2的编译

上面讲得安装过程是官方提供了预编译的二进制文件,通常来说够用了,但对于一些特殊情况下的环境,就需要集成第三方插件,这里需采用官方提供的 xcaddy 来自行进行编译。

1. Golang 环境安装

我的云服务器是Ubuntu系统,所以编译环境默认为Ubuntu系统,使用 root 用户,其他系统的同学,请自行调整相关目录以及配置。

a. 首先下载go语言的SDK压缩包

cd ~
wget https://golang.org/dl/go1.20.2.linux-amd64.tar.gz

b.解压go语言的 SDK 压缩包

# 解压
tar -zxvf go1.20.2.linux-amd64.tar.gz

c.目录设置

# 移动到自定义目录
mkdir -p /opt/devtools
mv go /opt/devtools/go

# 创建 go 相关目录
mkdir -p ${HOME}/gopath/{src,bin,pkg}

d.环境变量设置

# 打开profile文件
vim /etc/profile

# 添加以下内容
export GOROOT='/opt/devtools/go'
export GOPATH="${HOME}/gopath"
# 如果是国内机器,需要导入添加代理
# export GOPROXY='https://goproxy.cn' 
export PATH="${GOROOT}/bin:${GOPATH}/bin:${PATH}"

# 让配置生效
source /etc/profile

e.测试安装效果

#键入命令
go version

# 屏幕输出
go version go1.20.2 linux/amd64

2. xcaddy安装

如果已经是root用户,则需要 把下面命令中的 sudo 去掉。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list
sudo apt update
sudo apt install xcaddy

安装完成后,通过查看版本验证是否安装成功。

# 查看 xcaddy 版本
xcaddy version

# 屏幕输出
v0.3.2 h1:Y1QPKq97GrSG6ryMhGTw1g9GHH8wRmwnCzOcN+f+gCY=

3. Caddy2编译

ubuntu系统需要安装 jq、curl、git ,如果没有请使用 apt install -y curl git jq 命令安装;自行编译的目的是增加第三方插件方便使用,官方列出的插件可以从 Download 页面获取到。其他插件可以从 GitHub 上查找,整理好这些插件列表以后只需要使用 xcaddy 编译即可,命令如下:

# 获取最新版本号,其实直接去 GitHub realse 页复制以下就行
# 这里转化为脚本是为了方便自动化

#获取caddy2的最新版本号,并导入变量version
export version=$(curl -s "https://api.github.com/repos/caddyserver/caddy/releases/latest" | jq -r .tag_name)

# 使用 xcaddy 编译
xcaddy build ${version} --output ./caddy_${version}  \
			--with github.com/caddy-dns/alidns 

我这里只添加了alidns这个插件,需要其他插件的自行在命令行后面加上就是。
编译完成后,在root目录下会出现一个 caddy_v2.6.4 的文件,然后把这个文件拷贝并覆盖到/usr/bin/caddy这个路径下,替换之前记得先停止caddy服务

# 替换二进制文件:将编译的 /root/caddy_v2.6.4 文件移至 /usr/bin/caddy 
systemctl stop caddy
rm -f /usr/bin/caddy
mv ./caddy_v2.6.4 /usr/bin/caddy
# 查看caddy是否安装成功
caddy version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是jvm?

说明:做java开发的几乎都知道jvm这个名词,但是由于jvm对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是jvm&…

跨源资源共享(CORS)-亲测理解,以及对http的状态,参数的理解和使用,对预检请求的触发和解决

跨源资源共享(CORS)-亲测理解,以及对http的状态,参数的理解和使用 跨源资源共享(CORS,或通俗地译为跨域资源共享)是一种基于HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的…

Python 的IDE——PyCharm

IDE介绍与安装 介绍 集成开发环境(IDE) 集成开发环境(IDE,integrated Development Environment) —— 集成开发软件需要的所有工具,一般包括以下工具: 图形用户界面 代码编辑器(支持代码补全、自动缩进) 编译器/解释器 调试器…

002+limou+HTML——(2)HTML文档

000、前言 一般来说一个静态网页拥有四种元素:文字、图片、超链接、音频和视频(注意,即使在web网页中植入Javascript语言,也不一定是动态网页,真正的动态网页判断标准:是否和服务器产生交互) …

Nginx 高可用方案

准备工作 10.10.4.5 10.10.4.6 VIP:10.10.4.10 两台虚拟机。安装好Nginx 安装Nginx 更新yum源文件: rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm wget -O /etc/yum.repos.d/CentOS-Ba…

17、经验贝叶斯估计

经验贝叶斯估计贝叶斯估计的问题定义为根据一些观测数据 x 来估计未知参数 θ,用一个损失函数来衡量估计的准确性,如果用均方误差(MSE)来估计的话,将问题建模为等价于求解后验分布的均值最小均方误差估计器 minimum mean square error (MMSE)…

XSS挑战赛(xsslabs)11~16关通关解析

简介 XSS挑战赛,里面包含了各种XSS的防御方式和绕过方式,好好掌握里面的绕过细节,有助于我们更好的去发现XSS漏洞以及XSS的防御。本文更多的是分享解析的细节,不是一个标准的答案,希望大家在渗透的时候有更多的思维。…

MySQL日期和时间函数 整理

1 获取日期、时间 CURDATE() ,CURRENT_DATE() 返回当前日期,只包含年、月、日 CURTIME() , CURRENT_TIME() 返回当前时间,只包含时、分、秒 NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP() 返回当…

工作订单之检查

1. 创建并查看检查 1.1 检查存在的意义 检查旨在帮助技术人员轻松回答工作订单中所需要回答的一系列问题,能够帮助技术人员梳理工作步骤,指导技术人员在检查中获得帮助 检查支持脱机操作,即在没有网络的情况下填写数据,并在网络恢…

Java多种方法实现等待所有子线程完成再继续执行

简介 在现实世界中,我们常常需要等待其它任务完成,才能继续执行下一步。Java实现等待子线程完成再继续执行的方式很多。我们来一一查看一下。 Thread的join方法 该方法是Thread提供的方法,调用join()时,会阻塞主线程&#xff0…

【建议收藏】深入浅出Yolo目标检测算法(含Python实现源码)

深入浅出Yolo目标检测算法(含Python实现源码) 文章目录深入浅出Yolo目标检测算法(含Python实现源码)1. One-stage & Two-stage2. Yolo详解2.1 Yolo命名2.2 端到端输入输出2.3 Yolo中的标定框2.4 Yolo网络结构2.5 Yolo的算法流…

【IoT】《天道》中音响案例的SWOT分析

在20世纪80年代初,SWOT最初是由美国知名管理学教授海因茨韦里克提出的。 之后这个工具就经常被用于企业的战略分析、竞争对手分析等场景。 在每年例行的公司产品规划过程中,我个人也经常使用这个工具。 由于涉及一些公司商业上的信息,下面会用…

Linux- 系统随你玩之--网络上的黑客帝国

文章目录1、前言2、TCPDump介绍2.1、问题来了: 所有用户都可以采用该命令吗?2.2、抓包原理2.3、特点2.3.1、参数化支持2.2.2、 TCP功能3、 服务器安装Tcpdump3.1、安装3.2、检查安装是否正常。4、tcpdump 命令4.1、常用功能选项4.2、输出内容5、实操5.1、…

安卓反编译入门04-对重新打包的APK进行签名

前提:重签的前提需要安装java环境,我电脑安装的地址:C:\Program Files\Java\重签的文件目录地址要在jdk的bin目录。进入命令行,执行 cd/d C:\Program Files\Java\jdk1.8.0_181\bin(注意,由于这个文件C:\Program Files要…

Git 分支操作【解决分支冲突问题】

1. 什么是分支 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学…

Redhat7.6安装weblogic10.3.6(超详细,有图文)

一、环境 linux版本:Redhat 7.6 weblogic版本:WLS10.3.6 jdk版本:jdk1.8.0 下载网址:https://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html 1.安装vsftpd服务,将部署环境使用JDK文件和wls服务文件…

【鸿蒙应用ArkTS开发系列】- 页面跳转及传参

先看下效果图 大致实现的功能点: 从Indext页面跳转到Second页面,传递两个参数,一个字符串,一个数量;Second获取Index页面传递的数据;Second页面点击返回弹窗;Second页面返回携带参数数据&#…

API接口实战演练,参考示例说明

onebound.1688.item_get 公共参数 名称类型必须描述keyString是 调用key(必须以GET方式拼接在URL中) 注册Key和secret测试 secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_se…

OpenStack手动分布式部署Nova【Queens版】

目录 Nove简介: 1、登录数据库配置(在controller执行) 1.1登录数据库 1.2数据库里创建nova-api 1.3数据库登录授权 1.4创建nova用户 1.5添加admin用户为nova用户 1.6创建nova服务端点 1.7创建compute API 服务端点 1.8创建一个placement服务…

C++源码pcl1.13.0库编译环境搭建及配置

Pcl github库https://github.com/PointCloudLibrary/pcl官网地址https://pointclouds.org/Pcl exe的下载地址,各个版本,以及各版本对应的源码https://github.com/PointCloudLibrary/pcl/releases源码需要编译,编译之前安装AllInOne的exe程序&…