instance.go 685 B

123456789101112131415161718192021222324252627282930
  1. package agent
  2. import (
  3. "nginx-ui/server/models"
  4. "nginx-ui/server/nginx"
  5. )
  6. var proxyNginx *nginx.Instance
  7. func GetInstance(ngx *models.Nginx) *nginx.Instance {
  8. var instance = proxyNginx
  9. if instance != nil {
  10. old := instance.GetNginx()
  11. if old.IpAddr != ngx.IpAddr || old.Port != ngx.Port || old.User != ngx.User || old.Password != ngx.Password {
  12. instance.Close(false)
  13. instance = nil
  14. } else {
  15. instance.SetNginx(ngx)
  16. return instance
  17. }
  18. }
  19. if ngx.IsLocal {
  20. instance = nginx.NewInstance(nginx.NewLocalNginx(ngx), ngx)
  21. } else {
  22. instance = nginx.NewInstance(nginx.NewRemoteInstance(ngx), ngx)
  23. }
  24. instance.SetNginx(ngx)
  25. proxyNginx = instance
  26. return instance
  27. }