当前位置: 首页 > 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.lryc.cn/news/602635.html

相关文章:

  • 工业计算机的重要性
  • C# 提取字符串 指定开始和结尾字符
  • JAVA+AI教程-第四天
  • 2,智能制造,MOM,MES - 柔性制造(具体内容参考PPT文档)
  • 接口测试核心概念与实践指南
  • 分享一个脚本,从mysql导出数据csv到hdfs临时目录
  • 安装及使用vscode
  • 基于EKF的单站相位差变化率定位实现
  • 【论文阅读】Safety Alignment Should Be Made More Than Just a Few Tokens Deep
  • Solidity基础(教程①-简单数字存储)
  • AI项目实战:使用Python进行专业级数据集处理的完整教程
  • MySQL面试题及详细答案 155道(001-020)
  • 生产力效能跃升 金士顿DDR5 5600内存
  • JavaWeb 新手学习路线:从零到全栈开发,系统掌握企业级 Web 开发技能
  • 经典算法题解析:从思路到实现,掌握核心编程思维
  • 开发笔记 | 实现人物立绘的差分效果
  • 四、计算机组成原理——第5章:存储系统
  • 电子电路原理学习笔记---第4章二极管电路---第3天
  • 架构师增效指南:飞算JavaAI:需求驱动下的智能微服务拆分与治理
  • 浏览器安全演进:从裸指针到 raw_ptr 的实践与思考
  • leetcode 2044. 统计按位或能得到最大值的子集数目 中等
  • RV1126B-P机器视觉应用AIoT及边缘计算算力达2.0支持 HDR 、 3DNR
  • 网安学习NO.19
  • 构建 P2P 网络与分布式下载系统:从底层原理到安装和功能实现
  • SystemClock_Config 函数解析
  • Office-PowerPoint-MCP-Server – 基于MCP的开源PPT生成与编辑工具
  • 【WRF-Chem第二期】WRF-Chem有关 namelist 详解
  • Leaflet 综合案例-矢量图层控制
  • Python Pandas.merge_ordered函数解析与实战教程
  • OpenLayers 综合案例-区域掩膜