Skip to content

Commit f225e74

Browse files
committed
增加nginx可用性检查
1 parent 0dc93e4 commit f225e74

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

internal/client/cert_deploy.go

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,24 @@ func (cd *CertDeployer) DeployCertificate(domain, url string) error {
5858
return fmt.Errorf("解压证书失败: %w", err)
5959
}
6060

61-
// 移动到配置的SSL目录
61+
// 2. 移动到配置的SSL目录
6262
if err := cd.moveCertificates(extractDir, sslPath, folderName); err != nil {
6363
return fmt.Errorf("移动证书失败: %w", err)
6464
}
6565

66-
// 3. 测试nginx配置
67-
if err := cd.testNginxConfig(); err != nil {
68-
return fmt.Errorf("nginx配置测试失败: %w", err)
69-
}
66+
// 3. 检查nginx是否存在,如果存在则测试配置和重新加载
67+
if cd.isNginxAvailable() {
68+
// 测试nginx配置
69+
if err := cd.testNginxConfig(); err != nil {
70+
return fmt.Errorf("nginx配置测试失败: %w", err)
71+
}
7072

71-
// 4. 重新加载nginx
72-
if err := cd.reloadNginx(); err != nil {
73-
return fmt.Errorf("nginx重新加载失败: %w", err)
73+
// 重新加载nginx
74+
if err := cd.reloadNginx(); err != nil {
75+
return fmt.Errorf("nginx重新加载失败: %w", err)
76+
}
77+
} else {
78+
fmt.Println("nginx未安装或不在PATH中,跳过nginx相关操作")
7479
}
7580
fmt.Printf("证书部署完成: %s\n", domain)
7681

@@ -240,6 +245,12 @@ func (cd *CertDeployer) moveCertificates(sourceDir, sslPath, folderName string)
240245
return nil
241246
}
242247

248+
// isNginxAvailable 检查nginx是否可用
249+
func (cd *CertDeployer) isNginxAvailable() bool {
250+
_, err := exec.LookPath("nginx")
251+
return err == nil
252+
}
253+
243254
// testNginxConfig 测试nginx配置
244255
func (cd *CertDeployer) testNginxConfig() error {
245256
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)

internal/client/client.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"github.com/orange-juzipi/cert-deploy/pb/deployPB"
1616
"github.com/orange-juzipi/cert-deploy/pb/deployPB/deployPBconnect"
1717
"github.com/orange-juzipi/cert-deploy/pkg/logger"
18-
"github.com/orange-juzipi/cert-deploy/pkg/utils"
1918
)
2019

2120
var (
@@ -129,10 +128,6 @@ func (c *Client) StartConnectNotify() {
129128
case deployPB.NotifyResponse_TYPE_CONNECT:
130129

131130
case deployPB.NotifyResponse_TYPE_CERT:
132-
fmt.Println("-------------收到证书部署通知-------------------")
133-
utils.PrintlnJson(response)
134-
fmt.Println("---------------开始下载证书-----------------")
135-
136131
go c.deployCertificate(response.Domain, response.Url)
137132
}
138133

internal/system/info.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ func GetSystemInfo() (*SystemInfo, error) {
5050

5151
// ValidateSystemRequirements 验证系统要求
5252
func ValidateSystemRequirements() error {
53-
// 检查nginx是否安装
53+
// 检查nginx是否安装(可选)
5454
if _, err := exec.LookPath("nginx"); err != nil {
55-
return fmt.Errorf("nginx未安装或不在PATH中")
55+
fmt.Println("警告: nginx未安装或不在PATH中,将跳过nginx相关操作")
56+
return nil
5657
}
5758

5859
// 检查是否有权限执行nginx命令
@@ -61,7 +62,8 @@ func ValidateSystemRequirements() error {
6162

6263
cmd := exec.CommandContext(ctx, "nginx", "-t")
6364
if err := cmd.Run(); err != nil {
64-
return fmt.Errorf("无法执行nginx命令,请检查权限: %w", err)
65+
fmt.Printf("警告: 无法执行nginx命令,请检查权限: %v\n", err)
66+
return nil
6567
}
6668

6769
return nil

0 commit comments

Comments
 (0)