1 Star 1 Fork 0

启明/caddy-api-module

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
reloadCaddy.go 2.30 KB
一键复制 编辑 原始数据 按行查看 历史
吴圣豪 提交于 2025-01-20 11:30 +08:00 . 完善API接口
package caddyApi
import (
"fmt"
"gitee.com/qimingxing666/caddy-api-module/tools"
"github.com/gin-gonic/gin"
"io/ioutil"
"net/http"
"os"
"strings"
)
// 强制重载配置
func ReloadCaddy(c *gin.Context) error {
url := "http://localhost:2025/load"
// 打开新的配置文件
configFile := "caddy.json"
configData, err := os.ReadFile(configFile)
if err != nil {
c.JSON(500, gin.H{
"code": 500,
"msg": "重载配置-读取配置文件失败",
"data": err.Error(),
})
return err
}
payload := strings.NewReader(string(configData))
// 创建请求
req, err := http.NewRequest("POST", url, payload)
if err != nil {
c.JSON(404, gin.H{
"code": 404,
"msg": "caddy未启动" + err.Error(),
"data": "",
})
return err
}
req.Header.Add("Cache-Control", "must-revalidate")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "*/*")
req.Header.Add("Accept-Encoding", "gzip, deflate, br")
req.Header.Add("User-Agent", "PostmanRuntime-ApipostRuntime/1.1.0")
req.Header.Add("Connection", "keep-alive")
// 发送请求
res, err := http.DefaultClient.Do(req)
if err != nil {
c.JSON(404, gin.H{
"code": 404,
"msg": "caddy未启动" + err.Error(),
"data": "",
})
return err
}
defer res.Body.Close()
return nil
}
// GetAndSetConfFile 获取配置,同步给本地caddy.json
func GetAndSetConfFile() string {
url := CaddyUrl + "config"
//req, err := http.NewRequest("GET", url, nil)
//if err != nil {
// return err.Error()
//}
//
//req.Header.Add("Accept", "*/*")
//req.Header.Add("Accept-Encoding", "gzip, deflate, br")
//req.Header.Add("User-Agent", "PostmanRuntime-ApipostRuntime/1.1.0")
//req.Header.Add("Connection", "keep-alive")
//
//res, err := http.DefaultClient.Do(req)
//if err != nil {
// return err.Error()
//}
// defer res.Body.Close()
// 读取响应内容
//body, err := ioutil.ReadAll(res.Body)
//if err != nil {
// fmt.Println("同步配置读取响应失败:", err)
// return err.Error()
//}
body, err := tools.CaddyConfig(url)
if err != nil {
//fmt.Println("同步配置读取响应失败:", err)
return err.Error()
}
// 将配置保存到本地文件
err = ioutil.WriteFile("caddy.json", body, 0644)
if err != nil {
fmt.Println("将配置同步到本地失败:", err)
return err.Error()
}
return ""
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/qimingxing666/caddy-api-module.git
git@gitee.com:qimingxing666/caddy-api-module.git
qimingxing666
caddy-api-module
caddy-api-module
v0.2.2

搜索帮助