1
ナイーブリバースプロキシは、このようなものです:goで完全なHTTPリバースプロキシを構築するためには何が必要ですか?
package main
import (
"net/http"
"net/http/httputil"
"net/url"
"fmt"
)
func main() {
// New functionality written in Go
http.HandleFunc("/new", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "New function")
})
// Anything we don't do in Go, we pass to the old platform
u, _ := url.Parse("http://www.google.com/")
http.Handle("/", httputil.NewSingleHostReverseProxy(u))
// Start the server
http.ListenAndServe(":8080", nil)
}
しかし、これは不完全です。ウェブサイトによっては、何も役立たないかもしれません。 httpsリダイレクトを行うものもあります。直接のIPアクセスについて不平を言う人もいます。私は仮想ホストが動作しないと思う?わからない。
真のリバースプロキシが完了すると、何が行われますか?
難しい点は、RPがあなたのアプリケーションサーバーの前に座っているようなものではないことが、RPをGoogleをミラーリングするための行動(あなたの例では、ホストヘッダーとフォローリダイレクトを設定するなど)キャッシュする、静的コンテンツを配信する、DoS攻撃をフィルタリングする、など)。あなたのアプリにとって何がうまくいかないかを知るまで、あなたが必要とするものを直感的に理解するのは難しいかもしれません。 – twotwotwo
このプロジェクトをチェックすると、おそらくhttps://slashquery.com – nbari