如何檢測反向代理中的響應(yīng)標(biāo)頭并對其做出反應(yīng)?我正在編寫一個注入反向代理的中間件方法。我確認正在調(diào)用中間件。服務(wù)器設(shè)置一個X-SERVER-VAR值為 的響應(yīng)標(biāo)頭Foo。我需要根據(jù)該值檢測并運行一些代碼。我以為我已經(jīng)閱讀了 ResponseWriter,認為服務(wù)器響應(yīng)應(yīng)該包含該值,但沒有記錄任何內(nèi)容。func SessionHandler(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { log.Printf(w.Header().Get("X-SERVER-VAR")) next.ServeHTTP(w, r) })}我用來github.com/gorilla/mux附加這個中間件處理程序。我正在使用類似于下面的代碼來設(shè)置所有內(nèi)容(針對這個問題進行了簡化)。func newProxy(remote string) http.Handler { proxyurl, err := url.Parse(remote) if err != nil { panic(err) } proxy := httputil.NewSingleHostReverseProxy(proxyurl) return proxy}func main() { r := mux.NewRouter() r.Use(SessionHandler) proxy := newProxy("https://www.example.com/") r.PathPrefix("/").Handler(proxy) log.Fatal(http.ListenAndServe(":9001", r))}如果中間件無法實現(xiàn),是否可以通過其他方式檢測來自服務(wù)器的響應(yīng)標(biāo)頭?
如何從反向代理獲取響應(yīng)標(biāo)頭
30秒到達戰(zhàn)場
2023-07-31 17:27:44