第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

golang 實(shí)現(xiàn)簡(jiǎn)版反向代理

標(biāo)簽:
Go 面試 微服務(wù)

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。[更多系列文章在我博客] coderdao.github.io/

golang 实现简版反向代理

正向代理 和 反向代理

如果说昨天介绍的 正向代理服务器 是从 用户端 角度出发。使得用户端能够:

  • 访问无法访问的数据 —— 访问谷歌
  • 加速页面访问速度的缓存 —— CDN 缓存
  • 对客户端访问内容过滤, 访问授权 —— 公司内网不能访问购物网站; 网吧;
  • 上网管理记录用户访问记录,对外隐藏特殊信息 —— 路由访问记录

那么今天要说的 反向代理服务器 则从 服务端 考虑

  • 负载均衡, 提高服务可扩展、稳定性 —— 服务器集群、多中心机房、灾备
  • ip白名单、限制开发端口, 保护内网安全 —— 网关
  • 限流、熔断、降级 —— 网关
  • 访问数据统计、访问内容权限控制 —— 网关
  • 内网、外网通过代理转发,对外隐藏实现细节。增加内部服务安全性 —— 网关

举个现有的例子:就是使用广受欢迎的Nginx。个人感觉反向代理在业务上面更多以网关角色呈现, 而网关则更像一个定制化 Nginx

简版反向代理实现

《HTTP 权威指南》中概括用一句话概括了 代理的核心功能接受客户端的请求,转发到后端服务器,获得响应并返回给客户端

这些都没在下面的代码实现中一一找到对应:

  • 接受客户端的请求第 11 行 设置路由, 所有请求 代理服务器handler() 方法处理

  • handler() 方法内 第 27 行 解析 下游服务器 的 请求协议、ip地址。并设入请求变量 r

  • 转发到后端服务器:请求 r第 33 行 transport.RoundTrip®, 转发请求至下游服务器

  • 获得响应下游服务器 请求 Header 信息 在 第 40 ~ 44 行 设入代理服务器的响应 w

  • 返回给客户端:代理服务器的响应 w 并返回

反向代理实现

启动 真实服务器

$ go run reverse_proxy_v1/real_server/main.go
2021/06/12 17:59:24 starting httpserver at 127.0.0.1:2003
2021/06/12 17:59:24 starting httpserver at 127.0.0.1:2004

测试 真实服务器

$ curl 'http://127.0.0.1:2003/sda?sda=111'

http://127.0.0.1:2003/sda
RemoteAddr=127.0.0.1:49795,X-Forwarded-For=,X-Real-Ip=
headers =map[Accept:[*/*] User-Agent:[curl/7.69.1]]
  

$ curl 'http://127.0.0.1:2004/sda?sda=111'

http://127.0.0.1:2003/sda
RemoteAddr=127.0.0.1:49795,X-Forwarded-For=,X-Real-Ip=
headers =map[Accept:[*/*] User-Agent:[curl/7.69.1]]

启动 代理服务器

$ go run reverse_proxy/reverse_proxy_v1/reverse_proxy_base/main.go
2021/06/12 18:32:21 start serving on port2002

测试 代理服务器

$ curl 'http://127.0.0.1:2002/sda?sda=111'

# 转发至 2003 并返回结果
http://127.0.0.1:2003/sda
RemoteAddr=127.0.0.1:57595,X-Forwarded-For=,X-Real-Ip=
headers =map[Accept:[*/*] Accept-Encoding:[gzip] User-Agent:[curl/7.69.1]]
點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消