广告
返回顶部
首页 > 资讯 > 服务器 >Nginx四层负载均衡的配置指南
  • 524
分享到

Nginx四层负载均衡的配置指南

2024-04-02 19:04:59 524人浏览 泡泡鱼
摘要

一、四层负载均衡介绍 什么是四层负载均衡 所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。 以常见的tcp

一、四层负载均衡介绍

什么是四层负载均衡

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

以常见的tcp为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

应用场景

1.四层+七层来做负载均衡,四层可以保证七层的负载均衡的高可用性;

2.负载均衡可以做端口转发

3.数据库读写分离

四层负载均衡特点

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

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

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

4.四层的转发效率比七层的高得多,但仅支持tcp/ip协议,不支持Httphttps协议;

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

二、四层负载均衡环境搭建

环境准备

主机 IP 身份
lb4 172.16.1.6,10.0.0.6 四层负载均衡
lb01 172.16.1.4,10.0.0.4 七层负载均衡
lb02 172.16.1.5,10.0.0.5 七层负载均衡

lb4和lb02搭建Nginx


# 配置yum源
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/Centos/$releasever/$basearch/
gpGCheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 安装Nginx
[root@lb02 ~]# yum install nginx -y
[root@lb4 ~]# yum install nginx -y

# 创建用户
[root@lb02 ~]# groupadd www -g 666 && useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@lb4 ~]# groupadd www -g 666 && useradd www -u 666 -g 666 -s /sbin/nologin -M

# 配置nginx
[root@lb02 ~]# vim /etc/nginx/nginx.conf 
user  www;
[root@lb4 ~]# vim /etc/nginx/nginx.conf 
user  www;

# 启动Nginx
[root@lb4 ~]# systemctl start nginx && systemctl enable nginx && systemctl status nginx
[root@lb02 ~]# systemctl start nginx && systemctl enable nginx && systemctl status nginx

将lb01配置同步到lb02


[root@lb01 ~]# scp /etc/nginx/conf.d/* 172.16.1.5:/etc/nginx/conf.d/
[root@lb01 ~]# scp /etc/nginx/proxy_params 172.16.1.5:/etc/nginx/

测试lb02的负载均衡


[root@lb02 ~]# nginx -t && systemctl restart nginx

#配置hosts测试
10.0.0.5 linux.wp.com

三、配置四层负载均衡

四层负载均衡语法


Syntax:	stream { ... }
Default:	—
Context:	main

#示例:四层负载均衡stream模块跟http模块在同一级别,不能配置在http里面
stream {
    upstream backend {
        server backend1.example.com:12345 weight=5;
        server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;
    }

    server {
        listen 12345;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }
}

配置nginx主配置文件


[root@lb4 ~]# vim /etc/nginx/nginx.conf
#注释http层所有内容
user  www;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
#添加一个包含文件
include /etc/nginx/conf.c/*.conf;
#http {
#    include       /etc/nginx/mime.types;
#    default_type  application/octet-stream;
#    log_fORMat  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                      '$status $body_bytes_sent "$http_referer" '
#                      '"$http_user_agent" "$http_x_forwarded_for"';
#    access_log  /var/log/nginx/access.log  main;
#    sendfile        on;
#    #tcp_nopush     on;
#    keepalive_timeout  65;
#    #gzip  on;
#    include /etc/nginx/conf.d/*.conf;
#}

配置四层负载均衡


#创建目录
[root@lb4 ~]# mkdir /etc/nginx/conf.c

#配置
[root@lb4 ~]# vim /etc/nginx/conf.c/linux.lb4.com.conf
stream {
    upstream lbserver {
        server 10.0.0.4:80;
        server 10.0.0.5:80;
    }

    server {
        listen 80;
        proxy_pass lbserver;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
    }
}

# 启动Nginx
[root@lb4 ~]# nginx -t && systemctl start nginx

# 配置hosts访问
10.0.0.6 linux.lb4.com

四层负载均衡配置日志


#四层负载均衡是没有access的日志的,因为在nginx.conf的配置中,access的日志格式是配置在http下的,而四层负载均衡配置是在http以外的;

#如果需要日志则需要配置在stream下面
[root@lb4 ~]# vim /etc/nginx/conf.c/linux.lb4.com.conf
stream {
	log_format  proxy '$remote_addr $remote_port - [$time_local] $status $protocol '
                  '"$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"';
    access_log /var/log/nginx/proxy.log proxy;

    upstream lbserver {
        server 10.0.0.4:80;
        server 10.0.0.5:80;
    }

    server {
        listen 80;
        proxy_pass lbserver;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
    }
}

#查看所有WEB服务器日志
[root@web01 ~]# tail -f /var/log/nginx/access.log
[root@web02 ~]# tail -f /var/log/nginx/access.log

四、四层负载端口转发

请求负载均衡的5555端口,跳转到web01的22端口


#简单配置
stream {
	server {
        listen 5555;
        proxy_pass 172.16.1.7:22;
	}
}

#一般配置
stream {
    upstream ssh_7 {
        server 10.0.0.7:22;
    }

    server {
        listen 5555;
        proxy_pass ssh_7;
    }
}

# 测试
[D:\~]$ ssh root@10.0.0.6:5555
成功跳转

请求负载均衡的6666端口,跳转至172.16.1.51:3306


stream {
    upstream db_51 {
        server 172.16.1.51:3306;
    }
    
    server {
        listen 6666;
        proxy_pass db_51;
    }
}

数据库从库的负载均衡


stream {
    upstream dbserver {
        server 172.16.1.51:3306;
        server 172.16.1.52:3306;
        server 172.16.1.53:3306;
        server 172.16.1.54:3306;
        server 172.16.1.55:3306;
        server 172.16.1.56:3306;
    }
    
    server {
        listen 5555;
        proxy_pass dbserver;
    }
}

总结

到此这篇关于Nginx四层负载均衡配置的文章就介绍到这了,更多相关Nginx四层负载均衡内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Nginx四层负载均衡的配置指南

本文链接: https://www.lsjlt.com/news/128070.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nginx四层负载均衡的配置指南
    一、四层负载均衡介绍 什么是四层负载均衡 所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。 以常见的TCP...
    99+
    2022-11-12
  • nginx怎么做四层负载均衡
    要在Nginx上实现四层负载均衡,可以使用Nginx的stream模块来完成。下面是实现四层负载均衡的步骤:1. 首先,需要安装Ng...
    99+
    2023-09-07
    负载均衡 nginx
  • nginx七层负载均衡配置详解
    目录一、负载均衡介绍二、nginx下载安装1、下载nginx源码包2、安装并启用三、nginx七层负载均衡配置real server设置:客户端设置:四、nginx扩充调度算法(sticky)1.下载扩展包2.编译前做一些优化:3.重新编译...
    99+
    2022-09-23
  • Nginx负载均衡的配置
    这篇文章主要讲解了“Nginx负载均衡的配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx负载均衡的配置”吧!1.简单了解Nginx负载均衡【lo...
    99+
    2022-10-18
  • nginx负载均衡如何配置
    要配置nginx负载均衡,您可以按照以下步骤进行操作:1. 安装nginx:首先,您需要在服务器上安装nginx。您可以通过执行以下...
    99+
    2023-09-02
    nginx 负载均衡
  • 怎么配置Nginx负载均衡
    本篇内容主要讲解“怎么配置Nginx负载均衡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么配置Nginx负载均衡”吧!user nobody;&n...
    99+
    2022-10-19
  • nginx怎么配置负载均衡
    要配置Nginx的负载均衡,可以按照以下步骤进行操作:1. 安装Nginx:首先确保已经安装了Nginx,可以通过apt-get或者...
    99+
    2023-09-07
    负载均衡 nginx
  • nginx负载均衡怎么配置
    这篇文章主要介绍“nginx负载均衡怎么配置”,在日常操作中,相信很多人在nginx负载均衡怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx负载均衡怎么配置”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-27
  • nginx的负载均衡怎么配置
    要配置NGINX的负载均衡,可以按照以下步骤:1. 安装NGINX:首先需要在服务器上安装NGINX。可以使用操作系统的包管理器进行...
    99+
    2023-09-02
    nginx 负载均衡
  • Nginx怎么配置TCP负载均衡
    本文小编为大家详细介绍“Nginx怎么配置TCP负载均衡”,内容详细,步骤清晰,细节处理妥当,希望这篇“Nginx怎么配置TCP负载均衡”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。假设Kubernetes集群已...
    99+
    2023-06-27
  • Nginx配置Tcp负载均衡的方法
    本文使用Nginx作为代理服务器,用来做负载均衡。只是一个简单的应用示例,并不涉及原理。 (这里主机有限,42.192.22.128主机8000端口用来做代理服务器监听端口,818...
    99+
    2022-11-13
  • nginx负载均衡配置哪些参数
    nginx负载均衡配置参数有:1、upstream配置,在http配置下增加即可;2、权重配置,用来解决上游服务器配置不均衡的情况;3、ip_hash配置,使每一个请求按照请求ip的hash结进行分配;4、fair配置,按上游服务器的响应时...
    99+
    2022-10-07
  • Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
    前奏 我们都知道 nginx 是一款优秀的反向代理服务,用过 nginx 的也应该都知道 upstream,upstream 节点一般置于 http 节点大括号中,常规在 upst...
    99+
    2022-11-12
  • Centos7上如何配置nginx的负载均衡
    Centos7上如何配置nginx的负载均衡,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 Centos7上配置nginx的负载均衡 ...
    99+
    2022-10-19
  • 超级详细的nginx负载均衡配置
    目录前言实验准备实验步骤其他负载均衡配置策略总结前言 nginx作为一款企业级的代理服务器,不管是大中小各类生产项目中,均有广泛的使用,尤其是在前后端分离的项目中,nginx作为路由...
    99+
    2022-11-13
  • 四层负载均衡的原理是什么
    四层负载均衡的原理是在传输层(第四层)工作,它通过检测和管理传入的请求流量,将请求分发到多个服务器,以实现负载均衡和高可用性。其基本...
    99+
    2023-09-07
    负载均衡
  • Nginx负载均衡策略选择与配置
    一、引言在构建高可用的web应用程序时,负载均衡是一个重要的部分。负载均衡可以分发用户请求到后端的多个服务器上,实现资源的合理利用,提高系统的可用性和性能。Nginx是一个功能强大的反向代理服务器,具有高效的负载均衡特性。本文将介绍如何选择...
    99+
    2023-10-21
    配置 nginx 负载均衡
  • Nginx负载均衡配置有哪些误区
    这篇文章主要讲解了“Nginx负载均衡配置有哪些误区”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx负载均衡配置有哪些误区”吧!之前有很多朋友问关于...
    99+
    2022-10-19
  • Nginx专题(2):Nginx的负载均衡策略及其配置
    本文介绍了Nginx的负载均衡策略,一致性hash分配原理,及常用的故障节点的摘除与恢复配置。文章来源:宜信技术学院 & 宜信支付结算团队技术分享第一期-宜信支付结算八方数据团队高级技术经理 周恒《Nginx的细枝末节》分享者:宜信...
    99+
    2023-06-04
  • nginx 负载均衡轮询方式配置详解
    一、概述 Nginx的upstream目前支持的分配算法:1、round-robin 轮询1:1轮流处理请求(默认)每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器dow...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作