nginx.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package nginx
  2. import (
  3. "github.com/0xJacky/Nginx-UI/server/settings"
  4. "log"
  5. "os/exec"
  6. "path/filepath"
  7. "regexp"
  8. )
  9. func TestConf() string {
  10. out, err := exec.Command("nginx", "-t").CombinedOutput()
  11. if err != nil {
  12. log.Println("[error] nginx.TestConf", err)
  13. }
  14. return string(out)
  15. }
  16. func Reload() string {
  17. out, err := exec.Command("nginx", "-s", "reload").CombinedOutput()
  18. if err != nil {
  19. log.Println("[error] nginx.Reload", err)
  20. }
  21. return string(out)
  22. }
  23. func GetConfPath(dir ...string) string {
  24. var confPath string
  25. if settings.ServerSettings.NginxConfigDir == "" {
  26. out, err := exec.Command("nginx", "-V").CombinedOutput()
  27. if err != nil {
  28. log.Println("nginx.GetConfPath exec.Command error", err)
  29. return ""
  30. }
  31. r, _ := regexp.Compile("--conf-path=(.*)/(.*.conf)")
  32. match := r.FindStringSubmatch(string(out))
  33. if len(match) < 1 {
  34. log.Println("nginx.GetConfPath len(match) < 1")
  35. return ""
  36. }
  37. confPath = r.FindStringSubmatch(string(out))[1]
  38. } else {
  39. confPath = settings.ServerSettings.NginxConfigDir
  40. }
  41. return filepath.Join(confPath, filepath.Join(dir...))
  42. }