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

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)化
国产91久久精品一区二区| 好看的中文字幕人妻少妇| 国产成av人片乱码色午夜| 亚洲精品一区二区三区香蕉| 国产精品一区二区三区播放| 在线观看中文字幕一区| 日本韩国三级理伦久久久| 亚洲欧美熟妇欲乱又伦| 中文字幕精品一区二区三区视频| 国产有码视频一区二区三区| 日韩亚洲毛片全在线播放| 日本的一级片一区二区| 久久综合婷婷亚洲五月| 中高龄夫妇五十路六十路| 久久精品国产亚洲av不卡| 欧美香蕉一区二区视频| 国产一区二区欧美精品| 日本免费中文字幕在线| 亚洲天堂国产中文在线| 国产一区二区日本在线| 91久久精品凹凸一区二区| 国产精品亚洲国产精品| 91亚洲熟妇国产熟妇肥婆| 东京成人热av男人的天堂| 亚洲av成人精品日韩一区麻豆 | 亚洲av天堂一区二区香蕉| 欧美另类不卡在线观看| 人妖一区二区三区在线观看| 日韩精品一区二区三区欲色av| 国内精品自拍亚洲视频| 亚洲精品人妻av在线| 午夜亚洲欧美日韩在线| 久久国产精品一区二区三区| 国产毛片一区二区在线| 91在线播放国产视频| 91成人国产综合久久精品| 色综合av男人的天堂| 亚州欧美精品一区二区| 日韩精品一区二区一牛| 国产一区av剧情巨作| 国产三级一区二区不卡|