nginx-ui/server/internal/nginx/nginx.go
2023-05-06 21:09:22 +08:00

84 lines
1.7 KiB
Go

package nginx
import (
"github.com/0xJacky/Nginx-UI/logger"
"github.com/0xJacky/Nginx-UI/server/settings"
"os/exec"
"path/filepath"
"regexp"
)
func TestConf() string {
out, err := exec.Command("nginx", "-t").CombinedOutput()
if err != nil {
logger.Error(err)
}
return string(out)
}
func Reload() string {
out, err := exec.Command("nginx", "-s", "reload").CombinedOutput()
if err != nil {
logger.Error(err)
}
return string(out)
}
func Restart() string {
out, err := exec.Command("nginx", "-s", "reopen").CombinedOutput()
if err != nil {
logger.Error(err)
}
return string(out)
}
func GetConfPath(dir ...string) string {
var confPath string
if settings.ServerSettings.NginxConfigDir == "" {
out, err := exec.Command("nginx", "-V").CombinedOutput()
if err != nil {
logger.Error(err)
return ""
}
r, _ := regexp.Compile("--conf-path=(.*)/(.*.conf)")
match := r.FindStringSubmatch(string(out))
if len(match) < 1 {
logger.Error("nginx.GetConfPath len(match) < 1")
return ""
}
confPath = r.FindStringSubmatch(string(out))[1]
} else {
confPath = settings.ServerSettings.NginxConfigDir
}
return filepath.Join(confPath, filepath.Join(dir...))
}
func GetNginxPIDPath() string {
var confPath string
if settings.ServerSettings.NginxPIDPath == "" {
out, err := exec.Command("nginx", "-V").CombinedOutput()
if err != nil {
logger.Error(err)
return ""
}
r, _ := regexp.Compile("--pid-path=(.*.pid)")
match := r.FindStringSubmatch(string(out))
if len(match) < 1 {
logger.Error("nginx.GetNginxPIDPath len(match) < 1")
return ""
}
confPath = r.FindStringSubmatch(string(out))[1]
} else {
confPath = settings.ServerSettings.NginxPIDPath
}
return confPath
}