Nginx 配置TCP和UDP负载均衡

前言

      Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。

        HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在“网络层”和“传输层”。例如,LVS(Linux Virtual Server,Linux虚拟服务)和F5(一种硬件负载均衡设备),也是属于“四层负载均衡”。

TCP负载均衡配置

        Nginx从1.9.0版本开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等鉴于Nginx在负载均衡和web service上的成功,和Nginx良好的框架,stream模块前景一片光明。

Nginx的stream模块默认不会自带安装,需要编译安装的时候手动添加上这个模块,不过我的系统里是已经安装了此模块,如果你没有安装,可能需要通过官网下载源码来打开此模块。 

nginx使用ngx_stream_core_module模块代理tcp长连接短连接,可以增强服务器的容灾能力。

TCP负载均衡的执行原理

当Nginx从监听端口收到一个新的客户端链接时,立刻执行路由调度算法,获得指定需要连接的服务IP,然后创建一个新的上游连接,连接到指定服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode116. 填充每个节点的下一个右侧节点指针

116. 填充每个节点的下一个右侧节点指针 难度中等128 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&am…

你的代码是否按照高内聚、低耦合的原则来设计的?

我们一直强调软件开发中要按照高内聚、低耦合的设计原则来做代码结构设计。c语言和c++不同,c语言面向过程、c++面向对象。 真正的项目中,要对业务升级,原来的业务函数需要保留,要保证老的功能继续维持,不能直接删除,这时候c语言面向过程,通常使用回调的方法。c+…

leetcode117. 填充每个节点的下一个右侧节点指针 II

给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被…

你担心大家会滥用的全局变量,大家(包括你自己)一定会滥用

前言 不要使用全局变量的道理大家都懂,基本上在大家学习编程过程中很早就会被教育到,但是有时候我们也会禁不住诱惑用到一些似非实是的全局变量,只不过这些全局变量会穿上马甲,让你不会一下看穿它的巨大危害,滥用全局变量会引申带来其它更为严重的结构性系统问题。…

Android Studio下载安装教程及开发环境搭建

Android Stuio是本次Google io的一大亮点啊,一大早起来就赶紧下载来玩玩了。。。 如果你不幸被墙了,可以去这个帖子下载,我已经上传到百度盘里面了。 [Android利器]Android Studio下载地址来啰 。。http://www.eoeandroid.com/thread-275380-…

leetcode124. 二叉树中的最大路径和

难度困难314 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3]1/ \2 3输出: 6示例 2: 输入: …

深入剖析阻塞式socket的timeout

前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。 本文讨论的是socket设置为阻塞模式,如果socket处于阻塞模式运行时,就需要考虑处理socket操作超时的问题。 所谓阻塞模式,是指其完成指定的操作之前阻塞当前的进程或线程,直到操作…

leetcode165. 比较版本号 超级重要的细节

比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1&#xff0c;如果 version1 < version2 返回 -1&#xff0c; 除此之外返回 0。 你可以假设版本字符串非空&#xff0c;并且只包含数字和 . 字符。 . 字符不代表小数点&#xff0c;而是用于分隔数…

游戏服务器缓存系统如何设计

前言 不管是在业界开源领域,还是内部分享中,很少会有专门针对游戏业务特征进行专门设计的组件、类库或者框架。我们从游戏的客户端方面来看,一款专业的游戏客户端引擎,已经是游戏开发的标配,flash,Cocos,Unity,Unreal等,但是服务器端,我们几乎找不到同样重量级的产品…

leetcode574. 当选者(SQL)

表: Candidate -------------- | id | Name | -------------- | 1 | A | | 2 | B | | 3 | C | | 4 | D | | 5 | E | -------------- 表: Vote ------------------- | id | CandidateId | ------------------- | 1 | 2…

使用KCP 加速游戏消息,让全球玩家流畅联网

定义 kcp协议是传输层的一个具有可靠性的传输层ARQ协议。 它的设计是为了解决在网络拥堵情况下tcp协议的网络速度慢的问题。 kcp力求在保证可靠性的情况下提高传输速度。 kcp协议的关注点主要在控制数据的可靠性和提高传输速度上面,因此kcp没有规定下层传输协议,一般用udp作为…

leetcode584. 寻找用户推荐人(SQL)

给定表 customer &#xff0c;里面保存了所有客户信息和他们的推荐人。 ----------------------- | id | name | referee_id| ----------------------- | 1 | Will | NULL | | 2 | Jane | NULL | | 3 | Alex | 2 | | 4 | Bill | NULL | …

剖析KCP以及KCP在游戏中是如何使用的

亲爱的各位读者你们好,由于前段时间忙于部分项目的重构和优化,未能及时更新文章,不少读者催更,哈哈,我还是很开心能抽出时间给大家再来分享下kcp的相关技术内幕,以及之前完善自己的网络库增加了KCP的客户端服务器收发支持(结尾会分享封装的客户端服务器C++源码)。 KCP概…

leetcode585. 2016年的投资(SQL)

写一个查询语句&#xff0c;将 2016 年 (TIV_2016) 所有成功投资的金额加起来&#xff0c;保留 2 位小数。 对于一个投保人&#xff0c;他在 2016 年成功投资的条件是&#xff1a; 他在 2015 年的投保额 (TIV_2015) 至少跟一个其他投保人在 2015 年的投保额相同。 他所在的城…

暴雪游戏走后,谁来接盘?对网易有何影响?

11月16日&#xff0c;暴雪娱乐公司宣布&#xff0c;由于与网易的现行许可协议将于2023年1月23日到期&#xff0c;将暂停在中国大陆的大部分暴雪游戏服务。这些暴雪游戏包括《魔兽世界》《炉石传说》《守望先锋》《星际争霸》《魔兽争霸 III&#xff1a;重制版》《暗黑破坏神 II…

leetcode586. 订单最多的客户(SQL)

在表 orders 中找到订单数最多客户对应的 customer_number 。 数据保证订单数最多的顾客恰好只有一位。 表 orders 定义如下&#xff1a; | Column | Type | |-------------------|-----------| | order_number (PK) | int | | customer_number | i…

Oracle中删除一列

ALTER TABLE TBWORKER DROP COLUMN WTUIJIAN;

leetcode595. 大的国家(SQL)

这里有张 World 表 ---------------------------------------------------------------------- | name | continent | area | population | gdp | ---------------------------------------------------------------------- | Afghanistan …

leetcode596. 超过5名学生的课(SQL)

有一个courses 表 &#xff0c;有: student (学生) 和 class (课程)。 请列出所有超过或等于5名学生的课。 例如,表: --------------------- | student | class | --------------------- | A | Math | | B | English | | C | Math | …

leetcode597. 好友申请 I :总体通过率(SQL)

在 Facebook 或者 Twitter 这样的社交应用中&#xff0c;人们经常会发好友申请也会收到其他人的好友申请。现在给如下两个表&#xff1a; 表&#xff1a; friend_request | sender_id | send_to_id |request_date| |-----------|------------|------------| | 1 | 2 …