linzhengen / tech-notes

My tech notes write in github issues🧲
1 stars 0 forks source link

[20211116] 数行でgolang proxy server構築できる #156

Open linzhengen opened 2 years ago

linzhengen commented 2 years ago

ソース

package main

import (
    "log"
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    backendURL, err := url.Parse("https://www.google.co.jp")
    if err != nil {
        log.Fatal(err)
    }
    director := func(r *http.Request) {
        r.URL.Scheme = backendURL.Scheme
        r.URL.Host = backendURL.Host
        r.Host = backendURL.Host
    }
    rp := &httputil.ReverseProxy{Director: director}
    server := http.Server{
        Addr:    ":9000",
        Handler: rp,
    }
    if err := server.ListenAndServe(); err != nil {
        log.Fatal(err.Error())
    }
}

googleをlocalhostで表示

image