美文网首页
nginx 做流量中转

nginx 做流量中转

作者: 程序员Hani | 来源:发表于2018-08-13 09:43 被阅读436次

一个常规的数据包流向:

用户网络环境 ----> 国外VPS ----> 目标国外网站

其中,第二段链路往往是比较流畅的(如果你不是又回过头来访问国内网站的话), 而第一段链路波动就比较大,尤其不同运营商会有不同表现。可能联通宽带可以很快访问,换移动宽带就很慢,甚至换了手机4G就完全访问不了。 这种速度、可靠性不稳定的访问体验是非常差的。

一个比较好的方案是使用一台国内机器作为中转。

用户网络环境 ----> 国内VPS ----> 国外VPS ----> 国外目标网站

首先,完全不要担心多了一步中转是否会影响速度(延时),因为本来IP数据包就会经过多次路由转发,添加一台机器中转相当于手动优化了路由规则。 绝大多数情况下,经过中转会降低大大降低数据包从用户端到国外目标网站的传输时间。

像阿里云腾讯云这样的大厂,他们的机房都在主干网上,并且针对国内各个运营商的线路都做了优化。 因此可以保证在新的数据流动路径上,第一段链路在绝大多数情况下都是快速稳定的。

至于第二段链路,国内VPS到国外VPS。由于阿里云等厂商基本都是BGP机房,出国线路也比较快速和稳定。 此外,由于是两个机房之间的通信,并且都有公网IP,没有NAT问题。

这三段链路中,第二段和第三段链路的带宽都不是瓶颈,因为阿里云可以选择按流量计费然后带宽选择100Mb,国外流量更加便宜大碗,VPS基本上都是1Gb带宽。 所以整条链路带宽瓶颈就是用户的宽带带宽。

中转工具

常用的、也是网上最常搜到的中转方案,是使用iptables和HaProxy 两个工具都有致命缺点:

iptables只是简单转发,没有负载均衡功能,并且配置相对不友好。

HaProxy是专门的负载均衡器,可惜只支持TCP。虽说大多数时候够用,但很多时候我们确实需要UDP,譬如查询DNS或者玩游戏。

所以这篇文章主要介绍用Nginx来进行流量转发和负载均衡,它支持UDP这一点弥补了HaProxy的不足。 并且Nginx支持插件扩展,可以实现更丰富的负载均衡功能。

建议使用docker来部署Nginx,优点是快捷方便,且适合有洁癖的同学。 不过缺点是不方便自定义Nginx模块。

配置文件如下:

没必要做过多解释了,会Nginx的同学自然会配置。“拿来主义者”(非贬义)对Nginx配置参数也没兴趣,能直接用就行。

把自己的服务器地址填在对应位置,然后运行Nginx即可。

建议使用docker + docker-compose部署:

新建docker-compose.yml文件:

version:'2'services:nginx_lb:image:nginx:alpineports:-"443-444:443-444"-"443-444:443-444/udp"volumes:-./nginx.conf:/etc/nginx/nginx.conf

执行docker-compose up -d即可。

以及别忘了在ECS控制台配置安全组规则,打开Nginx监听的端口(此处为443-444, udp+tcp端口)。

NGINX 做流量中转

直连

相关文章

  • nginx 做流量中转

    一个常规的数据包流向: 用户网络环境 ----> 国外VPS ----> 目标国外网站 其中,第二段链路往往是比较...

  • 【iOS学习】大型高并发与高可用的三层缓存架构总结

    nginx 对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存...

  • day26:自我觉察

    昨天感触比较深的有三件事: 1、nginx配置问题 昨天本地配置nginx,做端口流量转发,从安装nginx到配置...

  • 全国联通必免

    此链接为风流量PLUS备用中转站 点击这里进入风流量PLUS官网

  • centos6 php nginx负载均衡并代转主服务器

    centos6 nginx负载均衡并代转主服务器(作为中转服也可以作为代理服) 参考地址(nginx负载均衡配置...

  • nginx跨域

    实现原理类似于 Node 中间件代理,需要你搭建一个中转 nginx 服务器,用于转发请求。 使用 nginx 反...

  • Nginx如何做流量控制

    原文:https://legolasng.github.io/2017/08/27/nginx-rate-limi...

  • 那些年踩过的坑

    2016-07-27 使用nginx中转时,如后端服务时间过长,导致前段页面返回http的504 gateway ...

  • 中转Webshell绕过流量检测防护

    ->_<- 0x00 前言 前一阵子心情不太好,本来已经不打算写东西了,但想到自己在学习的时候摸爬滚打,吃尽了苦头...

  • Nginx反向代理https

    Nginx对Https的反向代理 使用Nginx进行反向代理的时候,对于正常的http;流量使用 location...

网友评论

      本文标题:nginx 做流量中转

      本文链接:https://www.haomeiwen.com/subject/azpjvftx.html