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

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)化
蜜桃视频中文字幕二区三区 | 日韩人妻中出中文字幕| 亚洲综合日韩欧美一区二区三区 | 伊人99热这里只有精品| 东京热一精品无码av| 日韩视频免费看一区二区| 亚洲一区二区三区色偷偷| 日韩一区二区三区av| 久久婷婷国产综合色啪| 亚洲精品色在线网站国产呦| 欧美日韩性性在线观看| 亚洲中文自偷自拍另类| 免费观看国内性生活大片| 人妻一区二区三区中文字幕| 亚洲欧美综合精品二区| 人妻中出中文字幕一区| 人妻熟女一区二区aⅴ在线视频| 亚洲综合色婷婷在线影院| av电影在线中文字幕| 男人天堂av在线资源| 五月开心婷婷中文字幕| 国产天堂亚洲国产碰碰| 人妇乱系列中文字幕人妻| 天堂免费av在线播放| 91精品手机在线观看| 女同毛片一区二区三区| 亚洲欧美国产日韩综合在线 | 亚洲日本日本午夜精品| 精品国产无遮挡污污网站| 成人深夜福利视频观看| 欧美精品一区二区久久| 91香蕉国产精品日韩| 久久精品中文字幕人妻| 毛茸茸的阴户在线观看| 久久精品熟女亚洲av色| 国产传媒在线观看精品| 国产精品伊人久久综合网| 求个手机免费在线观看av网址| 狼人综合狼人综合网站| 国产传媒在线播放一区| 国产精品视频在线播放|