当前所在位置: 首页 > 域名购买

“反向代理层”绝不能替代“DNS轮询”Proxy-Go v9.2 发布,新增P2P打洞重试、流量快速上报,TCP压缩!

2021-10-11 本站作者 【 字体:

前言

Proxy 是 golang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、前置 CDN/Nginx 反代、代理连接重定向、API动态调用上级代理、限速限连接数。提供全平台的命令行版本,友好易用的Windows&Linux&macOS控制面板,强大的安卓版。

Proxy-Go v9.2 发布,新增P2P打洞重试、流量快速上报,TCP压缩!更新内容内网穿透P2P打洞增加了重试,提高成功率。http(s)\socks5\sps增加了控制接口参数,通过参数--control-url指定的http接口地址。用来及时断开比如流量超了或者过期了的用户或IP已经建立的连接。tcp增加了压缩传输参数-z和-Z。http(s)/socks5/sps/tcp/udp代理流量上报增加了模式参数--traffic-mode,默认是`normal`普通模式上报,还可以使用`fast`快速模式上报(精准控制流量)。 特色功能链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理。通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征。智能HTTP代理,HTTPS代理,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。域名黑白名单,更加自由的控制网站的访问方式。跨平台性,无论你是widows,linux,还是mac,甚至是树莓派,都可以很好的运行proxy。多协议支持,支持HTTP(S),TCP,UDP,Websocket,SOCKS5代理。TCP/UDP端口转发。游戏盾,游戏代理,高仿服务器。内网穿透,P2P传输,协议支持TCP和UDP,针对HTTP的优化穿透。SSH中转,HTTP(S),SOCKS5代理支持SSH中转,上级Linux服务器不需要任何服务端,本地一个proxy即可开心上网。KCP协议支持,HTTP(S),SOCKS5代理支持KCP协议传输数据,降低延迟,提升浏览体验。动态选择上级代理,通过外部API,HTTP(S),SOCKS5,SPS代理可以实现基于用户或者IP的限速,连接数限制,动态获取上级。灵活的上级分配,HTTP(S),SOCKS5,SPS代理可以通过配置文件实现基于用户或者IP的限速,连接数限制,指定上级。反向代理,支持直接把域名解析到proxy监听的ip,然后proxy就会帮你代理访问需要访问的HTTP(S)网站。透明HTTP(S)代理,配合iptables,在网关直接把出去的80,443方向的流量转发到proxy,就能实现无感知的智能路由器代理。协议转换,可以把已经存在的HTTP(S)或SOCKS5或SS代理转换为一个端口同时支持HTTP(S)和SOCKS5和SS代理,转换后的SOCKS5和SS代理如果上级是SOCKS5代理,那么支持UDP功能,同时支持强大的级联认证功能。自定义底层加密传输,http(s)\sps\socks代理在tcp之上可以通过tls标准加密以及kcp协议加密tcp数据,除此之外还支持在tls和kcp之后进行自定义加密,也就是说自定义加密和tls|kcp是可以联合使用的,内部采用AES256加密,使用的时候只需要自己定义一个密码即可。底层压缩高效传输,http(s)\sps\socks代理在tcp之上可以通过自定义加密和tls标准加密以及kcp协议加密tcp数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和tls|kcp是可以联合使用的。安全的DNS代理,可以通过本地的proxy提供的DNS代理服务器与上级代理加密通讯实现安全防污染的DNS查询。负载均衡,高可用,HTTP(S)\SOCKS5\SPS代理支持上级负载均衡和高可用,多个上级重复-P参数即可。指定出口IP,HTTP(S)\SOCKS5\SPS\TCP代理支持客户端用入口IP连接过来的,就用入口IP作为出口IP访问目标网站的功能。如果入口IP是内网IP,出口IP不会使用入口IP支持限速,HTTP(S)\SOCKS5\SPS\TCP代理支持限速。支持限连接数,HTTP(S)\SOCKS5\SPS\TCP代理支持限连接数。SOCKS5代理支持级联认证。证书参数使用base64数据,默认情况下-C,-K参数是crt证书和key文件的路径,如果是base64://开头,那么就认为后面的数据是base64编码的,会解码后使用。支持客户端IP黑白名单,更加安全的控制客户端对代理服务的访问,如果黑白名单同时设置,那么只有白名单生效。socks/http(s)/sps/tcp/udp/dns/内网穿透bridge/内网穿透tbridge,都支持客户端IP黑白名单。端口范围批量监听,HTTP(S)\SOCKS5\SPS\TCP代理支持指定端口范围监听,避免启动过多进程,提高性能。

有朋友问我,DNS轮询是不是过时的技术了?有了反向代理层(Nginx、LVS、F5等),是不是就不需要DNS轮询了?

然而,反向代理层绝不能替代DNS轮询!

反向代理层有什么用?架构实现时要注意什么?

(1) 作为服务端统一入口,屏蔽后端WEB集群细节,代表整个WEB集群;

画外音:这就是为啥它叫反向代理。

(2) 保证WEB集群的扩展性,Nginx后端可随时加WEB实例;

(3) 实施负载均衡,反向代理层会将请求均匀分发给后端WEB集群的每一个实例;

(4) 保证WEB集群的高可用,任何一个WEB实例挂了,服务都不受影响;

(5) 注意自身高可用,防止一台Nginx挂了,服务端统一入口受影响;

反向代理层还存在啥问题?

反向代理层自身的扩展性问题并没有得到很好的解决,例如当Nginx成为系统瓶颈的时候,无法扩容。

DNS轮询如何解决反向代理层的扩展性问题?

通过在DNS-server上对一个域名设置多个IP解析,能够增加入口Nginx实例个数,起到水平扩容的作用,解决反向代理层的扩展性问题。

因此,反向代理和DNS轮询并不是互斥的技术,however,这里详细展开讲一下接入层的架构渐进历程。

裸奔时代(1)单机架构

“反向代理层”绝不能替代“DNS轮询”

裸奔时代的架构图如上:

(1) 浏览器通过DNS-server,域名解析到ip;

(2) 浏览器通过ip访问web-server;

缺点:

(1) 非高可用,web-server挂了整个系统就挂了;

(2) 扩展性差,当吞吐量达到web-server上限时,无法扩容;

画外音:单机不涉及负载均衡问题。

简易扩容方案(2)DNS轮询

假设tomcat的吞吐量是1000次每秒,当系统总吞吐量达到3000时,如何扩容是首先要解决的问题,DNS轮询是一个很容易想到的方案。

画外音:DNS轮询解决扩展性问题。

“反向代理层”绝不能替代“DNS轮询”

此时的架构图如上:

(1) 多部署几份web-server,1个tomcat抗1000,部署3个tomcat就能抗3000;

(2) 在DNS-server层面,域名每次解析到不同的ip;

优点:

(1) 零成本:在DNS-server上多配几个ip即可,功能也不收费;

(2) 部署简单:多部署几个web-server即可,原系统架构不需要做任何改造;

(3) 负载均衡:变成了多机,负载也是均衡的;

缺点:

(1) 非高可用:DNS-server只负责域名解析ip,这个ip对应的服务是否可用,DNS-server是不保证的,假设有一个web-server挂了,部分服务会受到影响;

(2) 扩容非实时:DNS解析有一个生效周期;

(3) 暴露了太多的外网ip;

简易扩容方案(3)反向代理Nginx

tomcat的性能较差,但Nginx作为反向代理的性能就强很多,假设线上跑到1w,就比tomcat高了10倍,可以利用这个特性来做扩容。

“反向代理层”绝不能替代“DNS轮询”

此时的架构图如上:

(1) 站点层与浏览器层之间加入了一个反向代理层,利用高性能的Nginx来做反向代理;

(2) Nginx将http请求分发给后端多个web-server;

优点:

(1) DNS-server不需要动;

(2) 负载均衡:通过Nginx来保证;

(3) 只暴露一个外网ip,Nginx->tomcat之间使用内网访问;

(4) 扩容实时:Nginx内部可控,随时增加web-server随时实时扩容;

(5) 能够保证站点层的可用性:任何一台tomcat挂了,Nginx可以将流量迁移到其他tomcat;

画外音:反向代理,能够更实时,更方便的扩容了。

缺点:

(1) 时延增加+架构更复杂了:中间多加了一个反向代理层;

(2) 反向代理层成了单点,非高可用:tomcat挂了不影响服务,Nginx挂了怎么办?

高可用方案(4)keepalived

为了解决高可用的问题,keepalived出场了。

“反向代理层”绝不能替代“DNS轮询”

(1) 做两台Nginx组成一个集群,分别部署上keepalived,设置成相同的虚IP,保证Nginx的高可用;

(2) 当一台Nginx挂了,keepalived能够探测到,并将流量自动迁移到另一台Nginx上,整个过程对调用方透明;

“反向代理层”绝不能替代“DNS轮询”

优点:

(1) 解决了高可用的问题;

画外音:反向代理的高可用也解决了。

缺点:

(1) 资源利用率只有50%;

(2) Nginx仍然是接入单点,如果接入吞吐量超过的Nginx的性能上限怎么办,例如qps达到了50000咧?

scale up扩容方案(5)lvs/f5

Nginx是应用软件,性能比tomcat好,但总有个上限,超出了上限,还是扛不住。

lvs就不一样了,它实施在操作系统层面;f5的性能又更好了,它实施在硬件层面;它们性能比Nginx好很多,例如每秒可以抗10w,这样可以利用他们来扩容,常见的架构图如下:

“反向代理层”绝不能替代“DNS轮询”

(1) 如果通过Nginx可以扩展多个tomcat一样,可以通过lvs来扩展多个Nginx;

(2) 通过keepalived+VIP的方案可以保证可用性;

99.9999%的公司到这一步基本就结束了,解决了接入层高可用、扩展性、负载均衡的问题。

画外音:上游再加一层扩充性能。

完美了嘛,还有什么潜在问题?

好吧,不管是使用lvs还是f5,这些都是scale up的方案,根本上,lvs/f5还是会有性能上限,假设每秒能处理10w的请求,一天也只能处理80亿的请求(10w秒吞吐量*8w秒),那万一系统的日PV超过80亿怎么办呢?

scale out扩容方案(6)DNS轮询

如之前文章所述,水平扩展,才是解决性能问题的根本方案,能够通过加机器扩充性能的方案才具备最好的扩展性。

facebook,google,baidu的PV是不是超过80亿呢,它们的域名只对应一个ip么,终点又是起点,还是得通过DNS轮询来进行扩容。

画外音:DNS轮询解决扩展性问题。

“反向代理层”绝不能替代“DNS轮询”

(1) 通过DNS轮询来线性扩展入口lvs层的性能;

(2) 通过keepalived来保证高可用;

(3) 通过lvs来扩展多个Nginx;

(4) 通过Nginx来做负载均衡,业务七层路由;

总结

稍微做一个简要的总结:

(1) 接入层架构要考虑的问题域为:高可用、扩展性、反向代理、负载均衡;

(2) Nginx、keepalived、lvs、f5可以很好的解决高可用、扩展性、反向代理、负载均衡的问题;

(3) 水平扩展scale out是解决扩展性问题的根本方案,DNS轮询是不能完全被Nginx/lvs/f5所替代的;

阅读全文
id_1广告位-300*300
相关推荐

一文搞懂什么是vlan三层交换机、网关、DNS、子网掩码、MAC地址什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址

一文搞懂什么是vlan三层交换机、网关、DNS、子网掩码、MAC地址什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址
一、什么是VLANVLAN中文是“虚拟局域网”。LAN可以是由少数几台家用计算机...

阿里云服务器购买教程有吗,谁有阿里云服务器的购买教程阿里云域名备案需要哪些文件

阿里云服务器购买教程有吗,谁有阿里云服务器的购买教程阿里云域名备案需要哪些文件
如果备案主体为个人,则基本资料中的主体负责人证件、网站负责人证件及主办单位证件均...

最强内网穿透工具frpF5负载均衡器如何通过irules实现应用的灵活转发?

最强内网穿透工具frpF5负载均衡器如何通过irules实现应用的灵活转发?
F5是非常强大的商业负载均衡器。除了处理性能强劲,以及高稳定性之外,F5还可以通...

只做url转发的域名怎样备案?-“米发(MFPad)URL部署服务域名注册提供商”。 (转载)

只做url转发的域名怎样备案?-“米发(MFPad)URL部署服务域名注册提供商”。 (转载)
在百度搜索“米发”,第一条就是“米发(MFPad)URL部署服务提供商”。所谓U...

用自己的域名,解析指向到别人的网站,应该怎么设置?域名解析,我购买了一个域名,想指向京东,是否把域名解析成www.jd.com或者京东网站的IP即可?

用自己的域名,解析指向到别人的网站,应该怎么设置?域名解析,我购买了一个域名,想指向京东,是否把域名解析成www.jd.com或者京东网站的IP即可?
首先可以明确的告诉大家,即使我们将自己的域名解析至京东的节点IP或域名上,依旧是...

短网址:只有前世,没有今生新媒体运营人,有哪些必备工具呢?(推荐收藏)

短网址:只有前世,没有今生新媒体运营人,有哪些必备工具呢?(推荐收藏)
点上面的蓝字 航通社 订阅我们本文首发于百度百家原创文章,未经授权,请勿转载使用...

twitter推自动缩略网址服务 将使用t.co域名(转载)top域名选择和解析(转载)

twitter推自动缩略网址服务 将使用t.co域名(转载)top域名选择和解析(转载)
域名是站长建站过程中最基本元素,域名的基本知识站长们懂多少,是否能正确掌握帮助自...

2006医药代理商与域名转让Top新顶级域名改变站长业态

2006医药代理商与域名转让Top新顶级域名改变站长业态
我们从事医药信息整理工作,整理了数量巨大的全国各地医药代理商信息资料,为方便各地...

有什么软件统计过期域名聚名网域名过期域名查?聚名网域名过期能看到几天

有什么软件统计过期域名聚名网域名过期域名查?聚名网域名过期能看到几天
过期域名查询点击首页导航条“域名查询”,进入过期域名查询页面。过期域名查询功能可...

如何查询域名是否被停了如何查看一个域名的到期时间

如何查询域名是否被停了如何查看一个域名的到期时间
出现域名突然不能访问有很多原因<a href="http://w...