|
@@ -0,0 +1,30 @@
|
|
|
+package agent
|
|
|
+
|
|
|
+import (
|
|
|
+ "nginx-ui/server/models"
|
|
|
+ "nginx-ui/server/nginx"
|
|
|
+)
|
|
|
+
|
|
|
+var proxyNginx *nginx.Instance
|
|
|
+
|
|
|
+func GetInstance(ngx *models.Nginx) *nginx.Instance {
|
|
|
+ var instance = proxyNginx
|
|
|
+ if instance != nil {
|
|
|
+ old := instance.GetNginx()
|
|
|
+ if old.IpAddr != ngx.IpAddr || old.Port != ngx.Port || old.User != ngx.User || old.Password != ngx.Password {
|
|
|
+ instance.Close(false)
|
|
|
+ instance = nil
|
|
|
+ } else {
|
|
|
+ instance.SetNginx(ngx)
|
|
|
+ return instance
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ngx.IsLocal {
|
|
|
+ instance = nginx.NewInstance(nginx.NewLocalNginx(ngx), ngx)
|
|
|
+ } else {
|
|
|
+ instance = nginx.NewInstance(nginx.NewRemoteInstance(ngx), ngx)
|
|
|
+ }
|
|
|
+ instance.SetNginx(ngx)
|
|
|
+ proxyNginx = instance
|
|
|
+ return instance
|
|
|
+}
|