...
1 package srv
2
3 import (
4 "net/http"
5 "net/http/httputil"
6 "strings"
7 )
8
9
10
11
12 type reverseProxy struct {
13 *httputil.ReverseProxy
14 }
15
16 func newReverseProxy(addr string, prefix string) *reverseProxy {
17 director := func(req *http.Request) {
18 req.URL.Host = addr
19 req.URL.Scheme = "http"
20 req.URL.Path = strings.TrimPrefix(req.URL.Path, prefix)
21
22
23 if _, ok := req.Header["User-Agent"]; !ok {
24
25 req.Header.Set("User-Agent", "")
26 }
27 }
28
29 return &reverseProxy{
30 ReverseProxy: &httputil.ReverseProxy{Director: director},
31 }
32 }
33
View as plain text