...
1 package verify
2
3 import (
4 "net/http"
5 "net/http/httputil"
6 "net/url"
7 "time"
8
9 "edge-infra.dev/pkg/lib/logging"
10 )
11
12
13
14 func reverseproxy() {
15 logger := logging.NewLogger()
16
17 target, err := url.Parse(InClusterIssuerURL())
18 if err != nil {
19 logger.Error(err, "Error parsing in cluster url")
20 }
21
22 proxy := httputil.NewSingleHostReverseProxy(target)
23
24 go func() {
25
26 server := &http.Server{
27 Addr: ":8080",
28 ReadHeaderTimeout: 2 * time.Second,
29 ReadTimeout: 2 * time.Second,
30 Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
31 r.URL.Host = target.Host
32 r.URL.Scheme = target.Scheme
33 r.Header.Set("X-Forwarded-Host", r.Header.Get("Host"))
34 r.Host = target.Host
35
36 proxy.ServeHTTP(w, r)
37 }),
38 }
39
40 logger.Info("Starting reverse proxy server on :8080")
41 err = server.ListenAndServe()
42 if err != nil {
43 logger.Error(err, "Error starting reverse proxy server")
44 }
45 }()
46 }
47
View as plain text