当前位置: 首页 > news >正文

Caddy服务器指南

Caddy指南

Caddy指南

  • 什么是Caddy–>一个类似于nginx的服务器,默认全程https,用Go语言实现
  • Caddy官网–>https://caddyserver.com/
  • Caddy中文文档–>https://caddy2.dengxiaolong.com/

安装Caddy

  • 安装方法默认和nginx不同,因为目前使用部署很广泛,因此需要手动去安装。

下载主文件

* 去官网下载[Download Caddy (caddyserver.com)](https://caddyserver.com/download)
* 安装插件[Download Caddy (caddyserver.com)](https://caddyserver.com/download)

建立目录体系

  1. 建立用户
#redhat系
adduser -r -d /var/www -s /sbin/nologin caddy #debian系
adduser --system --group --disabled-login --home /var/www --shell /sbin/nologin caddy 
  1. 建立目录
#配置文件目录:
mkdir /etc/caddy && chown -R root:caddy /etc/caddy
#配置文件:
touch /etc/caddy/Caddyfile
#SSL证书存放目录:
mkdir /etc/ssl/caddy && chown -R caddy:root /etc/ssl/caddy && chmod 0770 /etc/ssl/caddy
#网站主目录:
mkdir /var/www && chown caddy:caddy /var/www
#编辑systemd单元:
vi /etc/systemd/system/caddy.service
  1. 写入systemd单元内容
[Unit]
Description=Caddy HTTP/2 web server
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service[Service]
User=caddy
Group=caddy
Restart=on-abnormalExecStart=/usr/local/bin/caddy run --config=/etc/caddy/Caddyfile --adapter=caddyfile
ExecReload=/bin/kill -USR1 $MAINPID
; Use graceful shutdown with a reasonable timeout
KillMode=mixed
KillSignal=SIGQUIT
TimeoutStopSec=5s
ProtectSystem=full[Install]
WantedBy=multi-user.target
  1. 重载systemd:
systemctl daemon-reload
  1. 防火墙放行端口:(CentOS)
firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
  1. 解决Debian端口绑定权限问题:
apt-get install libcap2-bin -y
setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/caddy  
#(caddy路径如果不对,可通过which caddy得出)

正向代理

  • 建立网站
localhost
respond "Hello World!"
  • 默认使用https进行访问,会自动生成本地的证书

  • 建立多个网站,使用花括号指定

localhost {respond "Hello, world!"}localhost:2016 {respond "Goodbye, world!"}

反向代理

  • 短期反向代理,直接从命令行输入:
caddy reverse-proxy --from 127.0.0.1:7789 --to 172.17.0.2:8080
  • 通过Caddyfile指定,在同一个目录下面执行caddy run
localhost
reverse_proxy 127.0.0.1:9000localhost:2016
reverse_proxy 127.0.0.1:9000

身份验证

  • 在Caddy v2中,使用basicauth来实现401验证
  • 需要先生成hash密码
caddy hash-password
  • 接着在已经创建的网站中设置basicauth模块
www.example.com {basicauth * {Bob <Hash-密码>}respond "Hello World!"
}
  • 多模块导入:如果我们需要通过多个模块来进行导入,那么我们需要指定一个模块对象
(basic-auth) { basicauth /secrets/* {(username) (hashed password) } 
} mytest.mydomain.tld { import basic-auth ... 
}
http://www.dtcms.com/a/302157.html

相关文章:

  • 架构实战——互联网架构模板(“开发层”和“服务层”技术)
  • 【服务器知识】nginx配置ipv6支持
  • 低代码可视化AR远程协助、巡检、装配、质检新平台-元境智搭平台
  • Odoo:免费开源的需求驱动物料需求计划(DDMRP)解决方案
  • 低轨星座通信路径规划仿真:基于Dijkstra算法的星间链路优化实现
  • Day 24:元组与os模块
  • NAS远程访问新解法:OMV与cpolar的技术协同价值
  • Maven中的bom和父依赖
  • 从0到500账号管理:亚矩阵云手机多开组队与虚拟定位实战指南
  • 从0开始学习R语言--Day60--EM插补法
  • C++11(上)(右值引用、移动构造)
  • 低速信号设计之 SMBUS 篇
  • Ubuntu服务器上JSP运行缓慢怎么办?全面排查与优化方案
  • Jenkins + SonarQube 从原理到实战一:基于 K8s 部署与使用(含中文插件与 Python 扫描)
  • 企业级日志分析系统ELK
  • R语言常用扩展包
  • 绳子切割 图论
  • Nestjs框架: 多租户与多数据库的架构设计与实现
  • 【LeetCode】算法详解#10 ---搜索二维矩阵II
  • React 项目中使用 Redux 实现公共状态共享
  • 从 WAIC 2025 的火爆,看 AI 时代视频“入口层”的技术演进
  • flink yarn 问题排查
  • [VLDB 2025]面向Flink集群巡检的交叉对比学习异常检测
  • 数据驱动与智能重构:定制开发开源AI智能名片S2B2C商城小程序对数字营销话语权的重塑
  • Spring ai 调用大模型
  • 盲盒抽卡机小程序系统开发:连接线上线下娱乐新桥梁
  • uniapp 更新apk有缓存点不动,卸载安装apk没有问题。android
  • 小程序组件的生命周期,以及在小程序中进行接口请求的方法设置
  • 网络编程概述与UDP编程
  • 【esp32s3】7 - VSCode + PlatformIO + Arduino + 构建项目