Skip to content

Instantly share code, notes, and snippets.

@lliwi
Created December 12, 2020 19:12
Show Gist options
  • Save lliwi/d465925f210c30bbb8ed6e0c103845ed to your computer and use it in GitHub Desktop.
Save lliwi/d465925f210c30bbb8ed6e0c103845ed to your computer and use it in GitHub Desktop.
package main
import (
"crypto/tls"
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
"os"
)
func main() {
target := os.Args[1]
remote, err := url.Parse(target)
fmt.Println("Server running on http://localhost:8080")
fmt.Println("Target set to: " + target)
if err != nil {
panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(remote)
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
http.HandleFunc("/", handler(proxy))
err = http.ListenAndServe(":8080", nil)
if err != nil {
panic(err)
}
}
func handler(p *httputil.ReverseProxy) func(http.ResponseWriter, *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
log.Println(r.URL)
w.Header().Set("X-Ben", "Rad")
p.ServeHTTP(w, r)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment