diff --git a/backend/app/service/ai_tool.go b/backend/app/service/ai_tool.go index 655dc8a8b..4efe68032 100644 --- a/backend/app/service/ai_tool.go +++ b/backend/app/service/ai_tool.go @@ -233,6 +233,9 @@ func (u *AIToolService) BindDomain(req dto.OllamaBindDomain) error { return err } } + if err = ConfigAIProxy(website); err != nil { + return err + } return nil } diff --git a/backend/app/service/website_utils.go b/backend/app/service/website_utils.go index fe4226303..2df76f4b4 100644 --- a/backend/app/service/website_utils.go +++ b/backend/app/service/website_utils.go @@ -1150,17 +1150,17 @@ func GetAllowIps(website model.Website) []string { } func ConfigAIProxy(website model.Website) error { - // nginxFull, err := getNginxFull(&website) - // if err != nil { - // return nil - // } - // config := nginxFull.SiteConfig.Config - // server := config.FindServers()[0] - // dirs := server.GetDirectives() - // for _, dir := range dirs { - // if dir.GetName() == "location" && dir.GetParameters()[0] == "/" { - // // server.UpdateRootProxy() - // } - // } + nginxFull, err := getNginxFull(&website) + if err != nil { + return nil + } + config := nginxFull.SiteConfig.Config + server := config.FindServers()[0] + dirs := server.GetDirectives() + for _, dir := range dirs { + if dir.GetName() == "location" && dir.GetParameters()[0] == "/" { + server.UpdateRootProxyForAi([]string{fmt.Sprintf("http://%s", website.Proxy)}) + } + } return nil } diff --git a/backend/utils/nginx/components/server.go b/backend/utils/nginx/components/server.go index d2cecbe57..1ae60f8f3 100644 --- a/backend/utils/nginx/components/server.go +++ b/backend/utils/nginx/components/server.go @@ -291,6 +291,18 @@ func (s *Server) UpdateRootProxyForAi(proxy []string) { "1.1", }, }, + &Directive{ + Name: "proxy_set_header", + Parameters: []string{ + "Connection", "''", + }, + }, + &Directive{ + Name: "chunked_transfer_encoding", + Parameters: []string{ + "off", + }, + }, } block.Directives = append(block.Directives, &Directive{ Name: "proxy_pass",