欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

golang反向代理無(wú)法訪問(wèn)的解決方案-創(chuàng)新互聯(lián)

這篇文章主要為大家詳細(xì)介紹了golang反向代理無(wú)法訪問(wèn)的解決方案,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鐵嶺免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

golang反向代理無(wú)法訪問(wèn)的解決方案

首先,我們來(lái)看一下如何得到一個(gè)反向代理結(jié)構(gòu)體

func NewSingleHostReverseProxy(target *url.URL) *ReverseProxy {
	targetQuery := target.RawQuery
	director := func(req *http.Request) {
		req.URL.Scheme = target.Scheme
		req.URL.Host = target.Host
		req.URL.Path = singleJoiningSlash(target.Path, req.URL.Path)
		if targetQuery == "" || req.URL.RawQuery == "" {
			req.URL.RawQuery = targetQuery + req.URL.RawQuery
		} else {
			req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery
		}
		if _, ok := req.Header["User-Agent"]; !ok {
			req.Header.Set("User-Agent", "")
		}
	}
	return &ReverseProxy{Director: director}
}

NewSingleHostReverseProxy用了一個(gè)閉包作為Director新建了一個(gè)ReverseProxy結(jié)構(gòu)體,director就是它為我們默認(rèn)實(shí)現(xiàn)的代理函數(shù)。在這個(gè)函數(shù)中重寫(xiě)了請(qǐng)求URL的協(xié)議、Host和Path等。但是它沒(méi)有重寫(xiě)req.Host,這也就導(dǎo)致了我們的反向代理只能在本地進(jìn)行代理。所以我們只要對(duì)這個(gè)函數(shù)進(jìn)行修改就可以了,有兩種方式可以修改。

修改方法:

1、我們可以將NewSingleHostReverseProxy函數(shù)拷貝出來(lái)進(jìn)行修改,反正這個(gè)函數(shù)也不復(fù)雜,然后在需要用到反向代理結(jié)構(gòu)體的地方用我們自定義的函數(shù)新建代理器。

func NewProxy(target *url.URL) *httputil.ReverseProxy {
	targetQuery := target.RawQuery
	director := func(req *http.Request) {
		req.Host = target.Host // -- 加入這句 --
		req.URL.Scheme = target.Scheme
		req.URL.Host = target.Host
		req.URL.Path = singleJoiningSlash(target.Path, req.URL.Path)
		if targetQuery == "" || req.URL.RawQuery == "" {
			req.URL.RawQuery = targetQuery + req.URL.RawQuery
		} else {
			req.URL.RawQuery = targetQuery + "&" + req.URL.RawQuery
		}
		if _, ok := req.Header["User-Agent"]; !ok {
			// explicitly disable User-Agent so it's not set to default value
			req.Header.Set("User-Agent", "")
		}
	}
	return &httputil.ReverseProxy{Director: director}
}

然后將httputil.NewSingleHostReverseProxy(u)替換成NewProxy(u)就可以代理到其他域名了。

2、自定義Director函數(shù)。我們還是用NewSingleHostReverseProxy函數(shù)新建代理器,然后自定義一個(gè)Director函數(shù)給它。

p := httputil.NewSingleHostReverseProxy(u)
d := p.Director
p.Director = func(r *http.Request) {
	d(r)
	r.Host = u.Host
}

關(guān)于golang反向代理無(wú)法訪問(wèn)的解決方案就分享到這里了,當(dāng)然并不止以上和大家分析的辦法,不過(guò)小編可以保證其準(zhǔn)確性是絕對(duì)沒(méi)問(wèn)題的。希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

當(dāng)前文章:golang反向代理無(wú)法訪問(wèn)的解決方案-創(chuàng)新互聯(lián)
鏈接分享:http://aaarwkj.com/article6/dgoiig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站軟件開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲亚洲精品av在线动| 国产精品成人一区二区艾草| 中文字幕丝袜精品久久| av国产一区二区在线| 偷拍一区二区三区免费| 欧洲精品亚洲精品日韩专区| 国产成人综合久久二区| 五月婷婷六月丁香在线观看| 国产精品亚洲二区三区三州| 激情五月婷婷我有我色 | 一区二区日韩视频九一蜜桃| 亚洲日本国产精品一区| 中国的性生活黄片免费观看| 日韩在线不卡中文字幕| 亚洲精品成av人在线观看| 亚洲一区欧美二区日韩三区| 蜜桃少妇人妻一区二区视频| av一级免费在线观看| 日韩一区欧美中文字幕| 欧美特黄在线免费观看| 国产一级二级三级大胆视频| 丰满人妻被猛烈进入中文版| 精品久久久久久久中文字幕| 一卡二卡精品在线免费| 欧美性精品不卡在线观看| 熟女少妇久久中文字幕| 国产激情久久久久久影院| 欧美亚洲伊人久久综合| 日本韩国三级视频在线观看| 国产免费一级av剧情| 国产中文字幕精品在线观看| 成人一区二区三区播放| 色哟哟视频在线免费观看| 日韩一区二区高清视频在线观看| 尤物视频网站在线观看| 天天干夜夜操天天射| 日韩特级黄片在线免费观看| 国产精品超碰在线观看| 日本av成人激情视频| 国产一区二区三区精品久久| 久久精品国产亚洲av高清观看|