在window平台使用caddy部署简朴web功能的服务器

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

下载与安装

下载caddy程序(Window平台)
caddy官网下载链接:https://caddyserver.com/download

下载好后将文件复制到C:\Program Files\Caddy,并将下载的文件重命名为caddy.exe

环境变量

添加window中的环境变量(主要解决cmd不能直接实行exe的下令)


添加好后点击确定并关闭打开的窗口
添加caddy的程序到window服务中(打开cmd实行)
  1. sc.exe create caddy start= auto binPath= "C:\Program Files\caddy.exe run"
复制代码
下令分析:
   sc.exe:这是Service Control(服务控制)的缩写,是Windows操作系统中用于与服务控制管理器(SCM)交互的下令行工具。它可以用来创建、删除、查询、配置和启动/制止Windows服务。
create:这是sc.exe下令的一个参数,指示要实行的操作是创建一个新的服务。
caddy:这是你想要创建的服务的名称。在这个例子中,服务被命名为caddy。服务名称在系统中必须是唯一的。
start= auto:这个参数指定了服务的启动范例。auto意味着服务将被配置为主动启动,即在系统启动时主动尝试启动这个服务。其他可能的值包括demand(手动启动)和disabled(禁用)。
binPath= “C:\Program Files\caddy.exe run”:这个参数指定了服务的可实行文件(.exe)的路径以及任何需要的下令行参数。在这个例子中,服务的可实行文件是c:\caddy.exe
  删除服务可用(打开cmd实行)
  1. sc delete caddy
复制代码
如果添加环境变量后也可直接实行
  1. caddy start
  2. caddy stop
复制代码
添加后会在服务中表现caddy

也可以使用官网的方法:https://caddyserver.com.cn/docs/running
bat脚本

不想使用环境变量与服务可以使用bat下令取代上面的功能,只是运行中会有cmd窗口不停在前台运行,适合暂时使用
  1. @echo off
  2. chcp 65001 >nul 2>&1
  3. :menu
  4. cls
  5. echo =============================
  6. echo 请选择要执行的操作:
  7. echo 1) 启动 Caddy (使用默认配置)
  8. echo 2) 重新加载 Caddy
  9. echo 3) 停止 Caddy
  10. echo 4) 退出
  11. echo =============================
  12. set /p choice=请输入选项(1, 2, 3 或 4):
  13. if "%choice%"=="1" goto startDefaultCaddy
  14. if "%choice%"=="2" goto reloadCaddy
  15. if "%choice%"=="3" goto stopCaddy
  16. if "%choice%"=="4" goto end
  17. :startDefaultCaddy
  18. :: 使用默认配置启动 Caddy
  19. start "Caddy Server" cmd /c "cd /d C:\Program Files\Caddy && caddy run"
  20. echo Caddy 已使用默认配置启动.
  21. goto menu
  22. :reloadCaddy
  23. :: 重新加载 Caddy 使用默认配置
  24. start "Caddy Reload" cmd /c "cd /d C:\Program Files\Caddy && caddy reload"
  25. echo Caddy 已重新加载.
  26. goto menu
  27. :stopCaddy
  28. :: 停止 Caddy
  29. start "Caddy Stop" cmd /c "cd /d C:\Program Files\Caddy && caddy stop"
  30. echo Caddy 已停止.
  31. goto menu
  32. :end
  33. exit
复制代码
配置文件

再次打开安装目录中,新建一个txt文件,重启名为Caddyfile的文件(不需要.txt扩展名)

编辑Caddyfile文件(可以文本文档编辑),添加如下内容:
  1. www.*******.com {
  2.         root * E:/下载
  3.         file_server browse
  4.         tls ********@qq.com
  5. }
复制代码
代码表明:
  1. E:/下载                 web显示的内容目录
  2. file_server browse      开启目录浏览功能,不加browse为不开启
  3. tls                     自动申请https证书,此处需要填写邮箱名
复制代码
将caddy添加到windows防火墙中

保存后即可启动
启动
  1. sc.exe start caddy
复制代码
制止
  1. sc.exe stop caddy
复制代码
输入netstat -na 检查下是否启用监听80与443端口,只有启用80与443端口才华主动申请乐成ssl证书

其它说明:
主动申请乐成证书文件的目录
  1. C:\Windows\System32\config\systemprofile\AppData\Roaming\Caddy\certificates\acme-v02.api.letsencrypt.org-directory
复制代码
关于证书的一些其它问题
如需使用www与@分析用同一个证书可以使用
  1. www.1234.com 1234.com {
  2.         root * E:/下载
  3.         file_server browse
  4.         tls ****@qq.com
  5. }
复制代码
如需使用API申请通配符证书可以使用
  1. *.1234.com {
  2.         root * E:/下载
  3.         file_server browse
  4.         tls {
  5.                     dns dnspod AP_ID,AP_tokin
  6.             }  
  7. }
复制代码
使用API证书时需使用对应的模块

注意:从官网下载时选中对应的模块即可生效
使用域名重定向
  1. 1234.com {
  2.         redir https://www.1234.com{uri}
  3.                 }
复制代码
手动添加模块

阿里云DNS
  1. caddy add-package github.com/caddy-dns/alidns
复制代码
使用阿里云DNS的的配制,将上面tls内网更换为
  1. tls {
  2.      dns alidns {
  3.             access_key_id *********
  4.         access_key_secret *********
  5.         }
  6.      }
复制代码
DNSPOD的DNS
  1. caddy add-package  github.com/caddy-dns/dnspod
复制代码
使用DNSPOD的DNS的的配制,将上面tls内容更换为
  1. tls {
  2.     dns dnspod 123456,5689899551214212
  3.   }  
复制代码
其它具体语法参考下面模块的连接
一样平常模块连接所在为包名中表现的所在,如下图

查询已添加的模块信息
  1. caddy build-info
复制代码

caddy配置basicauth认证 (新版本已使用bcrypt哈希算法生成)
由于caddy配置不接受明文暗码,可以使用下面下令举行对暗码举行加密
输入暗码 123456 ,如下图

那么配制文件为:
  1. 1234.com www.1234.com {
  2.         encode gzip
  3.         root * E:/下载
  4.         file_server browse
  5. # 对 E:/下载 目录下所有文件进行认证保护,访问时会提示输入用户名与密码,此处的用户名为test,密码为123456。
  6.         basicauth /* {
  7.         test $2a$14$pU0EPsxiwT7j2KEAuqBa..fEmMlkXOY1lGMKY/pz72C1aq2B66paK
  8.         }
  9.         tls *****@qq.com
  10. }
复制代码

此处的用户名为test, 暗码为123456
caddy配制文件中使用的为bcrypt哈希算法生成的暗码哈希值。 bcrypt是一种基于哈希函数的加密算法,它使用一个暗码和一个盐值作为输入,生成一个固定长度的暗码哈希值。这个哈希值在每次暗码输入时都会重新生成,而且会随着盐值的改变而改变。bcrypt的盐值是一个随机生成的字符串,与暗码一起用于哈希函数中,使得雷同的暗码在每次加密时都会生成差别的哈希值。
bcrypt是一种暗码哈希函数,通常用于存储用户暗码的安全散列值。
这个字符串的格式是由几个部分构成的:
                                    2                         a                              2a                  2a: 这是指明使用的哈希算法的标识符,对于bcrypt来说,表示使用的是bcrypt版本 2a。
14$: 这是指明用于加密的工作因子,这里是14,表示加密过程的迭代次数。剩下的部分就是经过哈希后的暗码散列值。
请注意,这个字符串自己并不包含暗码信息,只是暗码的哈希值。 哈希函数是单向的,因此从哈希值中无法还原出原始暗码。
原文链接:https://blog.csdn.net/becklee1218/article/details/135282231

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表