热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx实现四层负载均衡

Nginx实现四层负载均衡Nginx四层负载均衡概述什么是四层负载均衡四层负载均衡是基于传输层协议包来封装的(如:TCPIP),我们前面使用到的七层是指应用层,他的组装在四层的基础

Nginx实现四层负载均衡

Nginx四层负载均衡概述


什么是四层负载均衡

四层负载均衡是基于传输层协议包来封装的(如:TCP/IP),我们前面使用到的七层是指应用层,他的组装在四层的基础之上,无论四层还是七层都是指的OSI网络模型。
根据 OSI 七层模型,四层负载均衡,在传输层做负载均衡

四层负载均衡应用场景



  • 1、4层负载可以保证7层负载的高可用:四层+七层来做负载均衡,四层可以保证七层的负载均衡的高可用性,如:nginx就无法保证自己的服务高可用,需要依赖LVS或者keepaive。

  • 2、端口映射(端口转发):如:tcp协议的负载均衡,有些请求是TCP协议的(mysql,ssh),或者说这些请求只需要使用四层进行端口的转发就可以了,所以使用四层负载均衡。


四层+七层构建大规模集群架构使用场景

img


四层负载均衡总结



  • 1、四层负载均衡仅能转发TCP/IP协议、UDP协议、通常用来转发端口,如:tcp/22、udp/53,

  • 2、四层负载均衡可以用来解决七层负载均衡端口限制问题;(七层负载均衡最大使用65535个端口)

  • 3、四层负载均衡可以解决七层负载均衡高可用问题;(多台后端七层负载均衡能同时的使用)

  • 4、四层的转发效率比七层的高得多,但仅支持tcp/ip协议,不支持http和https协议;

  • 5、通常大并发场景通常会选择使用在七层负载均衡前面增加四层负载均衡


Nginx四层负载均衡实战


四层负载做端口映射

[root@lb02 ~]# vim /etc/nginx/nginx.conf(写在http上面)
stream {
upstream web02_ssh {
server 172.16.1.8:22;
}
upstream db01_ssh {
server 172.16.1.51:22;
}
server {
listen 2222;
proxy_pass web02_ssh;
}
server {
listen 2223;
proxy_pass db01_ssh;
}
}
### 端口映射的另一种写法
[root@lb01 conf.c]# vim lb_db01.conf
stream {
upstream db01_ssh {
server 172.16.1.51:22;
}
server {
listen 2223;
proxy_pass db01_ssh;
}
}

stream做4层负载

[root@lb02 ~]# vim /etc/nginx/nginx.conf(写在http上面)
stream {
upstream lb{
server 172.16.1.5:80;
server 172.16.1.6:80;
}
server {
listen 80;
proxy_pass lb;
proxy_connect_timeout 3s;
proxy_timeout 3s;
}
}
## 端口映射:
- 虚拟机
- nginx stream模块
- 防火墙 CenOS 6:iptable CenOS 7:firewalld
## 四层负载添加日志
log_format proxy '$remote_addr $remote_port - [$time_local] $status $protocol '
'"$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"' ;
access_log /var/log/nginx/tcp.log proxy;


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Ansible:自动化运维工具详解
    Ansible 是一款新兴的自动化运维工具,基于 Python 开发,集成了多种运维工具(如 Puppet、CFEngine、Chef、Func 和 Fabric)的优点,实现了批量系统配置、程序部署和命令执行等功能。本文将详细介绍 Ansible 的架构、特性和优势。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • 在使用 `requests` 库进行 HTTP 请求时,如果遇到 `requests.exceptions.SSLError: HTTPSConnectionPool` 错误,通常是因为 SSL 证书验证失败。解决这一问题的方法包括:检查目标网站的 SSL 证书是否有效、更新本地的 CA 证书库、禁用 SSL 验证(不推荐用于生产环境)或使用自定义的 SSL 上下文。此外,确保 `requests` 库和相关依赖项已更新到最新版本,以避免潜在的安全漏洞。 ... [详细]
  • 基于 Bottle 框架构建的幽默应用 —— Python 实践 ... [详细]
  • 本文详细解析了高性能通信库 NanoMsg 的框架及其应用场景。其中,BUS模式支持多对多的简单通信方式,消息会传递给所有直接连接的节点。REQREP模式则适用于构建无状态的服务集群,用于处理用户的请求,每个请求都需要一个相应的响应。 ... [详细]
author-avatar
麻廿_965
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有