LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Caddy 部署实操指南:Windows 环境下从入门到高级配置

admin
2025年8月13日 10:57 本文热度 83

一、引言

Caddy 是一款现代化的 Web 服务器,以极简的配置和自动 HTTPS 特性著称。本文将结合实际操作,详细介绍在 Windows 系统中使用 Caddy 部署网站的全流程,涵盖安装、配置、证书申请及常见问题解决,帮助开发者快速上手。

二、Caddy 安装与基础配置

2.1 安装 Caddy

方法一:使用 Chocolatey 包管理器(推荐)
  1. 以管理员身份打开 PowerShell,执行以下命令安装 Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
  1. 安装 Caddy:

choco install caddy
  1. 验证安装:

caddy version
方法二:手动安装
  1. 从  Caddy 官网 下载 Windows 64 位 ZIP 包,解压后将 caddy.exe 移动至 C:\Caddy 目录。

  2. 将 C:\Caddy 添加到系统环境变量 Path 中。

2.2 创建首个网站

  1. 创建网站根目录 C:\Website,并在其中添加 index.html

<h1>Hello from Caddy!</h1>
  1. 在桌面创建 Caddyfile(无扩展名),输入以下内容:

localhost {
    root * C:\Website
    file_server
}
  1. 启动 Caddy:

caddy run --config "$env:USERPROFILE\Desktop\Caddyfile"
  1. 访问 http://localhost,应看到网页内容。

三、HTTPS 配置与证书自动申请

3.1 自动获取 Let's Encrypt 证书

默认情况下,Caddy 会自动为域名申请 Let's Encrypt 证书。修改 Caddyfile 为真实域名:

www.sdyzco.com.cn {
    root * C:\Website
    file_server
    tls wh@sdyzco.com.cn  # 填写邮箱用于证书管理
}

重启 Caddy 后,访问 https://www.sdyzco.com.cn,浏览器会显示安全锁标志。

3.2 处理 80 端口被占用问题

若 80 端口被其他服务占用,可仅使用 443 端口(TLS-ALPN-01 验证):

www.sdyzco.com.cn {
    root * C:\Website
    file_server
    tls wh@sdyzco.com.cn
    http_port 0  # 禁用 80 端口
}

3.3 使用阿里云 DNS 验证(高级场景)

当服务器无法开放 80/443 端口时,可通过 DNS 验证申请证书:

  1. 安装 Caddy 插件:

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
xcaddy build --with github.com/caddy-dns/alidns
  1. 配置 Caddyfile

www.sdyzco.com.cn {
    root * C:\Website
    file_server
    tls {
        dns alidns {
            access_key_id YOUR_ALIYUN_ACCESS_KEY
            access_key_secret YOUR_ALIYUN_SECRET_KEY
        }
    }
}

四、多域名与子域名配置

4.1 主域名与 www 域名统一

sdyzco.com.cn, www.sdyzco.com.cn {
    root * C:\Website
    file_server
    tls wh@sdyzco.com.cn
}

4.2 子域名独立配置

app.sdyzco.com.cn {
    root * C:\AppWebsite
    file_server
    tls wh@sdyzco.com.cn
}

五、性能优化与安全配置

5.1 通用安全头设置

通过导入配置片段添加安全响应头:

(security) {
    header {
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        X-Frame-Options "SAMEORIGIN"
        -Server  # 移除服务器标识
    }
}
www.sdyzco.com.cn {
    import security
    # 其他配置
}

5.2 静态资源压缩与缓存

(compression) {
    encode gzip zstd
    minimum_length 256
}
(static_assets) {
    @static path *.js *.css *.png
    header @static Cache-Control "public, max-age=31536000"
}
www.sdyzco.com.cn {
    import compression
    import static_assets
    # 其他配置
}

六、服务化运行与日志管理

6.1 设置为 Windows 服务

使用 nssm 将 Caddy 配置为开机自启服务:

choco install nssm
nssm install caddy
# 在图形界面中指定 Caddy 路径和配置文件路径

6.2 日志分割与存储

www.sdyzco.com.cn {
    log {
        output file "C:/Logs/caddy.log" {
            roll_size 50MiB  # 单文件最大 50MB
            roll_keep 14     # 保留 14 个历史文件
        }
    }
    # 其他配置
}

七、常见问题与解决方案

7.1 证书申请失败

  • 错误原因:防火墙阻止 80/443 端口、DNS 解析未生效、API 密钥错误。

  • 解决方法:开放防火墙端口、检查域名解析、使用 caddy validate 验证配置。

7.2 404 错误

  • 原因:根目录路径错误、文件不存在。

  • 解决方法:确保 root 指令指向正确目录,添加 browse 指令调试(生产环境需移除):

file_server browse

八、总结

Caddy 通过极简的配置和自动化特性,大幅降低了 HTTPS 部署门槛。本文覆盖了 Windows 环境下的安装、证书申请、多域名配置及性能优化,开发者可根据实际需求灵活调整配置。建议在生产环境中结合云服务商的安全组策略,并定期监控证书状态,确保服务稳定运行。


阅读原文:https://blog.51cto.com/wahu/13967500


该文章在 2025/8/13 17:06:07 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved