https到http反向代理

时间:2019-09-08 13:01:20

标签: http go https reverse-proxy

我想在golang中建立一个反向代理,它充当一种中间件,将https请求转发到http API,然后以安全和加密的方式将响应转发到客户端。

我看过httputil.ReverseProxy,但是我想知道我是否正确

这是一个返回处理程序的函数,该处理程序负责将https转发到http并将响应返回到https:

func (s *service) setUpRouter() (http.Handler, error) {
    // targetURL is the API where the requests are forwarded to
    targetURL, err := url.Parse(s.target) 
    if err != nil {
        return nil, err
    }
    reverseProxy := httputil.NewSingleHostReverseProxy(targetURL)

    reverseProxy.Director = func(request *http.Request) {
        request.Header.Add("X-Forwarded-Host", request.Host)
        request.Header.Add("X-Origin-Host", targetURL.Host)
        request.URL.Scheme = "http"
        request.URL.Host = targetURL.Host
    }

    return reverseProxy, nil
}

我希望反向代理将请求转发到http API,并将响应以https的形式返回给客户端。

0 个答案:

没有答案
相关问题