subdomain.go 966 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package dynamicproxy
  2. import (
  3. "log"
  4. "net/url"
  5. "imuslab.com/arozos/ReverseProxy/mod/reverseproxy"
  6. )
  7. /*
  8. Add an URL intoa custom subdomain service
  9. */
  10. func (router *Router) AddSubdomainRoutingService(hostnameWithSubdomain string, domain string, requireTLS bool) error {
  11. if domain[len(domain)-1:] == "/" {
  12. domain = domain[:len(domain)-1]
  13. }
  14. webProxyEndpoint := domain
  15. if requireTLS {
  16. webProxyEndpoint = "https://" + webProxyEndpoint
  17. } else {
  18. webProxyEndpoint = "http://" + webProxyEndpoint
  19. }
  20. //Create a new proxy agent for this root
  21. path, err := url.Parse(webProxyEndpoint)
  22. if err != nil {
  23. return err
  24. }
  25. proxy := reverseproxy.NewReverseProxy(path)
  26. router.SubdomainEndpoint.Store(hostnameWithSubdomain, &SubdomainEndpoint{
  27. MatchingDomain: hostnameWithSubdomain,
  28. Domain: domain,
  29. RequireTLS: requireTLS,
  30. Proxy: proxy,
  31. })
  32. log.Println("Adding Subdomain Rule: ", hostnameWithSubdomain+" to "+domain)
  33. return nil
  34. }