nginx.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package models
  2. import "github.com/astaxie/beego"
  3. // Nginx nginx data
  4. // - Token: 客户端连接时的token,唯一
  5. type Nginx struct {
  6. Id int `orm:"pk;auto" json:"id"`
  7. Name string `json:"name"`
  8. Uid string `json:"uid"`
  9. VersionInfo string `orm:"size(2550)" json:"versionInfo"`
  10. // 是否以服务的形式进行托管
  11. IsServer bool `json:"isServer"`
  12. // 走Agent代理
  13. Proxy bool `json:"proxy"`
  14. Token string `json:"token"`
  15. NginxPath string `json:"nginxPath"`
  16. // nginx的配置文件所在目录,即nginx.conf所在的目录
  17. NginxDir string `json:"nginxDir"`
  18. // 数据目录,所有的配置文件目录
  19. DataDir string `json:"dataDir"`
  20. IsLocal bool `json:"isLocal"`
  21. IpAddr string `json:"ipAddr"`
  22. Port int `json:"port"`
  23. User string `json:"user"`
  24. Password string `json:"password"`
  25. HttpData string `orm:"type(text)" json:"httpData"`
  26. HttpConf string `orm:"type(text)" json:"httpConf"`
  27. Remark string `json:"remark"`
  28. }
  29. // Check 检查参数,给默认值
  30. func (t *Nginx) Check() {
  31. if t.DataDir == "" {
  32. t.DataDir = beego.AppConfig.String("datadir")
  33. }
  34. if t.NginxPath == "" {
  35. t.NginxPath = beego.AppConfig.String("nginxPath")
  36. }
  37. if t.NginxDir == "" {
  38. t.NginxDir = beego.AppConfig.String("nginxDir")
  39. }
  40. }
  41. // ServerHost nginx data
  42. type ServerHost struct {
  43. Id int `orm:"pk;auto" json:"id"`
  44. Enable bool `json:"enable"`
  45. // is tcp or udp, default is false
  46. IsStream bool `json:"isStream"`
  47. NginxId int `json:"nginxId"`
  48. Uid string `json:"uid"`
  49. Name string `json:"name"`
  50. // 记录一下上一次刷新保存的名字
  51. LastName string `json:"lastName"`
  52. // 前端完整的 server_host配置数据
  53. ServerData string `orm:"type(text)" json:"serverData"`
  54. // nginx server.conf content
  55. ServerConf string `orm:"type(text)" json:"serverConf"`
  56. Remark string `json:"remark"`
  57. }
  58. // NginxCerts nginx证书, ServiceName域名,唯一不可重复
  59. type NginxCerts struct {
  60. Id int `orm:"pk;auto" json:"id"`
  61. ServiceName string `orm:"unique" json:"serviceName"`
  62. Uid string `json:"uid"`
  63. Key string `orm:"type(text)" json:"key"`
  64. Pem string `orm:"type(text)" json:"pem"`
  65. NginxId int `json:"nginxId"`
  66. ExpiresAt string `json:"expiresAt"`
  67. SubjectName string `json:"subjectName"`
  68. // 系统的提示信息
  69. HintMsg string `json:"hintMsg"`
  70. CreatedAt string `json:"createdAt"`
  71. Remark string `json:"remark"`
  72. }